如何描述要从连接表中选择的列

时间:2014-03-06 17:49:25

标签: mysql sql

我有两张桌子:

作者表:

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

1 个答案:

答案 0 :(得分:0)

根据你想要得到的东西,你已经使它变得比它需要的更复杂。您不需要在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