[英]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.