我有 4 张 table :
comment (CommentID, StoryID, UserID, CommentContent),
vote (VoteID, UserID, AnswerID),
answer (AnswerID, StoryID, AnswerContent),
user (UserID, Username)
所以我想获取故事 8 的所有评论以及发表这些评论的用户的信息(包括他们的投票信息)。并非所有发表评论的用户都会投票。这是我的查询,但没有成功
SELECT * FROM comment a
LEFT JOIN vote b ON a.UserID = b.UserID
JOIN answer c ON b.AnswerID = c.AnswerID
JOIN user d ON a.UserId = d.UserID
GROUP BY a.CommentID HAVING a.StoryID = 8
我不知道为什么这个查询显示未投票的评论者的投票结果。你能帮我解决它吗?非常感谢。
最佳答案
您的 GROUP BY 和 HAVING 子句不正确。
SELECT * FROM comment a
LEFT JOIN vote b ON a.UserID = b.UserID
JOIN answer c ON b.AnswerID = c.AnswerID
WHERE a.StoryID = 8
关于mysql - 如何使这个 MYSQL 外连接工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27931210/