【问题标题】:SQL-Unable to display count value that contain 0SQL-无法显示包含 0 的计数值
【发布时间】:2015-03-27 17:18:06
【问题描述】:

有2表讨论和评论, 讨论桌有 D1 和 D2 评论表有(C1,D2),(C2,D2)

SELECT        Discussion.DiscussionID, COUNT(Comment.CommentID) AS Expr1
FROM            Comment INNER JOIN
                     Discussion ON Comment.DiscussionID = Discussion.DiscussionID INNER JOIN
                     Category ON Discussion.CategoryID = Category.CategoryID
GROUP BY Discussion.DiscussionID

我想要这样的输出...

Dicussion ID||   Comment COunt
D1                  0
D2                  2

但是结果是这样的

Dicussion ID||   Comment COunt
D2                  2

【问题讨论】:

    标签: mysql sql sql-server inner-join query-builder


    【解决方案1】:

    Inner Join 转换为Right Join 以便从Discussion 表中获取所有行。

    SELECT Discussion.DiscussionID,
           Count(Comment.CommentID) AS Expr1
    FROM   Comment
           RIGHT JOIN Discussion
                   ON Comment.DiscussionID = Discussion.DiscussionID
           INNER JOIN Category
                   ON Discussion.CategoryID = Category.CategoryID
    GROUP  BY Discussion.DiscussionID 
    

    【讨论】:

    • 谢谢,我明白了。
    【解决方案2】:

    或者使用左连接

    SELECT Discussion.DiscussionID,
           Count(Comment.CommentID) AS Expr1
    FROM   Discussion
           INNER JOIN Category
                   ON Discussion.CategoryID = Category.CategoryID
           LEFT JOIN Comment
                   ON Comment.DiscussionID = Discussion.DiscussionID
    GROUP  BY Discussion.DiscussionID 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-11
      • 2012-09-04
      • 2015-10-25
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      相关资源
      最近更新 更多