mysql - 如何使这个 MYSQL 外连接工作

标签 mysql join outer-join

我有 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/

相关文章:

Mysql 查询消耗过多磁盘空间

php - 将代码插入MySQL数据库

MySQL:如何进行涉及连接和左连接的查询

php - 带有异国情调连接的 Doctrine 2 分页器抛出错误

mysql - 在 mySQL 中连接 4 个表并包含 NULL 值

sql - LEFT OUTER JOIN 与子查询语法

php - 如何获得最大数量的不同值

sql - 在 JOIN 语句中使用自己的元组

mysql - 为什么这个左外连接会产生错误的结果?

php - 单击图像时从动态表中删除一行