gpt4 book ai didi

mysql - 我的 sql 查询使用左连接有什么问题?

转载 作者:行者123 更新时间:2023-11-29 14:58:55 25 4
gpt4 key购买 nike

我正在使用 MySQL。我有 3 个表,我试图在查询中连接,但我看不出我在以下查询中做错了什么:

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

我想生成用户书架上所有书籍的列表,以及他们所做的任何评论。以下查询仅提供用户已评论过的书籍列表;我想要他们所有的书。我认为第二个 LEFT OUTER JOIN 可以做到这一点 - 将书架标题连接到书评标题,但我没有得到任何没有评论的书(应该有很多)。删除第二个 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

关于mysql - 我的 sql 查询使用左连接有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3814381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com