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