2009-09-02 19 views
2

這就是我需要獲取:
- 帖子有意見
- 表達的每個職位未讀的留言數( - 的
每個帖子的評論數由「評論」表中的bool「閱讀」列)需要幫助增加一個條件COUNT()已使用連接的查詢

最後一部分是我遇到的麻煩。
這裏是我的SQL至今:

選擇
posts.id
,posts.title
,COUNT(comments.id)AS commentsCount
來自帖子
INNER JOIN評論
簡評.postID = posts.id
GROUP BY
posts.id
ORDER BY
comments.createDate DESC

這工作得很好,到目前爲止,但我需要COUNT()有多少評論有自己的「讀」字段等於0,我不知道如何執行此附加COUNT( )在現有的查詢中。

在此先感謝!

回答

3

如何

SUM(CASE comments.Read WHEN 0 THEN 1 ELSE 0 END) 
+0

這完美地工作,謝謝!我不熟悉CASE,我有一些研究要做:) – 2009-09-02 20:10:46

2
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