我有這3個表:MySQL的:相同的左內多計數JOIN表不工作
1. posts (num, title, createdDate)
2. comments (num, post_num, parent_comment)
3. likes (comment_num)
我想查詢得到以下結果:
1. all posts
2. comments count including replies
3. replies count only (comments.parent_comment != 0)
4. total likes count
5. total participants in a post
到目前爲止我是用好除了#3的一切,即回覆數只(comments.parent_comment!= 0)
這是查詢:
SELECT
posts.num,
posts.title,
DATEDIFF(NOW(),posts.createdDate) as NumOfDays,
COUNT(comments.num) AS totalComments,
COUNT(CASE WHEN comments.parent_comment=0 THEN 0 ELSE comments.parent_comment END) AS totalReplies,
COUNT(likes.comment_num ) AS totalLikes,
COUNT(DISTINCT comments.member_num) AS participants,
cms_uploads.urlPath
FROM posts
LEFT JOIN comments ON comments.post_num = posts.num
LEFT JOIN likes ON likes.comment_num = comments.num
GROUP BY posts.num
ORDER BY totalComments DESC
我現在的結果是「totalReplies」 count類似於「totalComments」 count。
任何想法如何通過獲得正確的totalReply數來得到這個工作?
謝謝!
謝謝!這工作得很好:D –
我剛剛發現一個小問題,它的'totalReplies'值始終是1,即使沒有對帖子發表任何評論,'totalReplies'出現爲1而不是0.任何想法? –
更精確,如果'totalComments'計數爲0,則'totalReplies'計數變爲1.如果'totalComments'計數> 0,那麼'totalReplies'計數正常工作,並顯示0或正確的答覆數。 –