我有4個表如下 -加盟條件是怎麼了?
tbl_confession -
Confession_id User_id title message
1 1 new foo
2 1 abcd yes
4 1 bar no
tbl_comment -
Comment_id user_id confession_id message
1 2 1 foobar
2 2 1 barfoo
tbl_confessionlike -
id confession_id user_id
1 1 1
2 1 2
3 2 2
tbl_confessionview -
id user_id confession_id
1 1 1
預期的結果應該是 -
ConfressionId title message total_comments total_likes total_views
1 new foo 2 2 1
2 abcd yes 0 1 0
4 bar no 0 0 0
我使用來實現上述結果的查詢 -
SELECT c.confession_id
,c.title
,c.message
,COUNT(co.comment_id)
,COUNT(cl.id)
,COUNT(cv.ID)
FROM tbl_confession c
LEFT JOIN tbl_comment co on c.confession_id = co.confession_id
LEFT JOIN tbl_confessionlike cl on c.confession_id = cl.confession_id
LEFT JOIN tbl_confessionview cv on c.confession_id = cv.confession_id
GROUP BY c.confession_id
,c.title
,c.message
輸出結果 -
ConfressionId title message total_comments total_likes total_views
1 new foo 4 4 4
2 abcd yes 0 1 0
4 bar no 0 0 0
但是給我計數爲4而不是2.此外,如果我想看到每個用戶相同的結果它仍然是相同的user_id = 1但爲其他用戶的空值。我無法解決錯誤。提前致謝。
這是給你數4?哪個記錄在哪? – JNevill
WFM http://sqlfiddle.com/#!9/45f718/1 – orhtej2
參見:[?我爲什麼要爲了什麼,在我看來是一個非常簡單的SQL查詢提供MCVE(HTTPS://meta.stackoverflow。 COM /問題/ 333952 /爲什麼,應該-I-提供-AN-MCVE換什麼,似乎對我將要-A-極簡單的SQL查詢) – Strawberry