MYSQL LEFT JOIN возвращает неожиданные результаты
У меня есть две таблицы talk_comments и talk_comment_votes . Я запускаю следующий код для выбора, commentId , numberOfUpvotes , ifUserUpvoted , numberOfDownvotes , isUserDownvoted code> usin LEFT JOINs в ту же таблицу. 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
У меня есть следующие данные в моей таблице talk_comment_votes Таким образом, согласно запросу, он должен выбрать значения 2,2,0,1,1соответственно. Когда