![](/img/trans.png)
[英]How do I get a left join with a group by clause to return all the rows?
[英]LEFT JOIN return all rows despite GROUP BY
我正在嘗試讓 LEFT JOIN 查詢包含評論表中的所有行:
SELECT r.review_id, SUM(v.vote_good), SUM(v.vote_bad)
FROM reviews AS r
LEFT JOIN reviews_votes_overall AS v
ON r.review_id = v.vote_review_id
GROUP BY v.vote_review_id
ORDER BY SUM(v.vote_good)
不幸的是,由於某些評論沒有相應的投票,因此 GROUP BY 導致未返回評論表中的行。
如何在此查詢中返回評論表中的所有行?
您應該使用GROUP BY r.review_id
。 如果評論沒有任何投票,則v.vote_review_id
為NULL
。 當您按v.vote_review_id
,所有具有零投票的記錄將被分組到結果review_id
一行中,並且review_id
為NULL
。
SELECT r.review_id, SUM(v.vote_good), SUM(v.vote_bad)
FROM reviews AS r
LEFT JOIN reviews_votes_overall AS v
ON r.review_id = v.vote_review_id
GROUP BY r.review_id
ORDER BY SUM(v.vote_good)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.