繁体   English   中英

需要帮助将条件COUNT()添加到已使用JOIN的查询中

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

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