[英]Need help adding a conditional COUNT() to a query already using JOINs
这是我需要获取的内容:
-有评论的帖子
-每个帖子的评论数
-每个帖子的未读评论数(由“评论”表中的“已读”一栏表示)
最后一部分是我遇到的麻烦。
到目前为止,这是我的SQL:
选择
posts.id
,posts.title
,COUNT(comments.id)个AS评论数
来自帖子
内联接评论
开启comments.postID = posts.id
通过...分组
posts.id
订购
comments.createDate DESC
到目前为止,此方法工作正常,但我需要COUNT()个注释的“读取”字段等于0的注释数。我不确定如何在现有查询中执行此额外的COUNT()。
提前致谢!
怎么样
SUM(CASE comments.Read WHEN 0 THEN 1 ELSE 0 END)
SELECT
p.id
, p.title
, COUNT(c.id) AS commentsCount
, SUM(CASE c.IsRead WHEN 0 THEN 1 ELSE 0 END) AS commentsRead
, SUM(CASE c.IsRead WHEN 0 THEN 0 ELSE 1 END) AS commentsUnRead
FROM
posts p
INNER JOIN
comments c
ON
c.postID = p.id
GROUP BY
p.id
ORDER BY
c.createDate DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.