我有2张桌子:

作者表:

id_author
author(author name in this column)


author_ind表:

id_book
id_author


我的查询是:

      SELECT author
        FROM authors
   LEFT JOIN author_ind
          ON author_ind.id_book = author_ind.id_author
   LEFT JOIN authors author
          ON author_ind.id_author = authors.id_author
       WHERE author_ind.id_book=%d


我需要根据author_ind表中的id_book从authors表中获取作者信息。 MYSQL错误#1052-字段列表中的列“作者”不明确。

请帮忙:)

更新:谢谢大家。正确的查询:

SELECT authors.author
  FROM authors, author_ind
 WHERE author_ind.id_book =14
   AND authors.id_author = author_ind.id_author


14只是一个书本ID,我用它来测试它是否有效而不是%d

最佳答案

根据您想要获得的结果,您已经使它变得比所需的复杂。您无需在authors表上进行第二次联接。同样,如果只希望author_ind表中有记录的作者,则可以执行INNER JOIN而不是LEFT JOIN

SELECT author
FROM authors
INNER JOIN author_ind
      ON authors.id_author = author_ind.id_author
WHERE author_ind.id_book=%d

关于mysql - 如何描述要从联接表中选择的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22232157/

10-10 11:55