[英]Left outer join with select where value in right table does not return all rows from left
我有一個多友關系表“喜歡”,其中存儲了表“列表”,“文章”,“評論”的喜歡。
該表的結構如下:
我正在嘗試選擇所有具有喜歡計數的列表:
SELECT lists.*, COUNT(DISTINCT likes.id) AS likes FROM lists
LEFT OUTER JOIN likes ON (lists.id = likes.content_id)
WHERE likes.content_type = 'list'
GROUP BY lists.id
但是,它僅從“喜歡”表中有喜歡的列表表中返回結果。
謝謝您的幫助!
如果需要左連接,則必須包含on子句中的where條件,否則我將用作內部連接
SELECT lists.*, COUNT(DISTINCT likes.id) AS likes
FROM lists
LEFT OUTER JOINlikes ON
(lists.id = likes.content_id
AND likes.content_type = 'list')
GROUP BY lists.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.