Mysql 什么';我的sql查询使用左连接有什么问题?

Mysql 什么';我的sql查询使用左连接有什么问题?,mysql,join,Mysql,Join,我正在使用MySQL。我在一个查询中尝试连接3个表,但我看不出以下查询有什么问题: 表1:书籍(书籍信息列表) 表2:书架(会员拥有的书籍列表) 表3:书评(书评列表) 我想生成一个用户书架上所有书籍的列表,以及他们所做的任何评论。下面的查询只提供了用户已审阅的书籍的列表;我要他们所有的书。我认为第二个左外连接可以做到这一点——将书架标题连接到书评标题,但我没有得到任何没有书评的书籍(应该有很多)。删除第二个JOIN语句(并将bookshelf放在FROM语句中)允许我获得一个没有评论的标题列表

我正在使用MySQL。我在一个查询中尝试连接3个表,但我看不出以下查询有什么问题:

表1:书籍(书籍信息列表) 表2:书架(会员拥有的书籍列表) 表3:书评(书评列表)

我想生成一个用户书架上所有书籍的列表,以及他们所做的任何评论。下面的查询只提供了用户已审阅的书籍的列表;我要他们所有的书。我认为第二个左外连接可以做到这一点——将书架标题连接到书评标题,但我没有得到任何没有书评的书籍(应该有很多)。删除第二个JOIN语句(并将bookshelf放在FROM语句中)允许我获得一个没有评论的标题列表,但它显示所有用户的所有书评

SELECT books.title, book_reviews.comments
FROM books
LEFT OUTER JOIN book_reviews ON books.ID = book_reviews.book_id
LEFT OUTER JOIN bookshelf ON book_reviews.user_id = bookshelf.user_id
WHERE bookshelf.book_id = books.ID
AND bookshelf.user_id =1
我想我遗漏了一些非常明显的东西,但我一直在阅读关于连接的文章,并回顾我的逻辑,但我对此视而不见。感谢所有能帮助我查看…

的人,请尝试以下内容:

SELECT books.title, book_reviews.comments
FROM bookshelf
LEFT OUTER JOIN books ON books.ID = bookshelf.book_id
LEFT OUTER JOIN book_reviews ON book_reviews.book_id = books.ID  
 AND book_reviews.user_id = bookshelf.user_id

WHERE bookshelf.user_id =1

他们能看书架上没有的书吗?是的,他们能看,但在这种情况下,我只在他们的书架上找东西。这个网站以书架为中心,就是这样。我想,从书本而不是书架开始,我一定是找错了重点。