我有两张桌子
talk_comments
和
talk_comment_votes
.
我运行以下代码来选择,
commentId
,
numberOfUpvotes
,
whetherUserUpvoted
,
numberOfDownvotes
,
whetherUserDownvoted
使用左连接到同一个表。
SELECT c.id, COUNT(v1.id) as upvotes, COUNT(v2.id) as userUpvoted, COUNT(v3.id) as downvotes, COUNT(v4.id) as userDownvoted FROM talk_comments c
LEFT JOIN talk_comment_votes v1 ON v1.comment_id = c.id AND v1.status = 1
LEFT JOIN talk_comment_votes v2 ON v2.comment_id = c.id AND v2.status = 1 AND v2.user_id = 1 AND v2.is_anonymous = 0
LEFT JOIN talk_comment_votes v3 ON c.id = v3.comment_id AND v3.status = 2
LEFT JOIN talk_comment_votes v4 ON c.id = v4.comment_id AND v4.status = 2 AND v4.user_id = 1 AND v4.is_anonymous = 0
WHERE c.id = 2 GROUP BY c.id
我的演讲评论投票表中有以下数据
因此,根据查询,它应该选择值
2,2,0,1,1
分别是。当我断开这些连接语句并执行查询时,它将返回预期的结果。但是,对于连接,它返回如下内容。
我能帮你修一下吗?
谢谢。