使用中间表从另一个表中获取信息

时间:2015-11-17 07:52:18

标签: php mysql sql-server

这里我有三个表authorsbooks_has_authorsbooks

Books_has_author是一个中间表,只包含其他两个表的主键。我正在尝试编写一个sql查询,它将返回由特定作者编写的所有书籍名称。我是关系数据库概念的新手,也是编写关系数据库查询的新手。我知道一些join查询,但我真的很困惑如何使用它们通过中间表获取信息。任何帮助将不胜感激 ! :)

enter image description here

3 个答案:

答案 0 :(得分:3)

你只需要添加一个额外的JOIN,如下所示:

SELECT b.book_id, b.book_name, a.author_id, a.author_name
FROM books b
JOIN books_has_author ba ON ba.books_book_id = b.book_id
JOIN author a ON ba.author_author_id = a.author_id
WHERE a.author_id = xxx

答案 1 :(得分:1)

试试这个:

  SELECT b.* FROM books b 
    INNER JOIN books_has_author bha 
    ON bha.books_book_id = b.book_id
    WHERE bha.author_author_id = "$$YOUR AUTHOR ID"

答案 2 :(得分:0)

像这样使用JOIN: -

SELECT *
FROM books
JOIN books_has_author ON books_has_author.books_book_id = books.book_id
JOIN author ON books_has_author.author_author_id = author.author_id
WHERE author.author_id = '123'