繁体   English   中英

左外部联接,带选择,其中右表中的值不返回左中的所有行

[英]Left outer join with select where value in right table does not return all rows from left

我有一个多友关系表“喜欢”,其中存储了表“列表”,“文章”,“评论”的喜欢。

该表的结构如下:

  • ID
  • 的content_id
  • 内容类型

我正在尝试选择所有具有喜欢计数的列表:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM