2015-01-28 1 views
1

Существует 2 Таблица Обсуждение и комментарии, Обсуждение tablehas D1 и D2 Комментарий таблица имеет (C1, D2), (С2, D2)SQL-Невозможно отобразить значение счетчика, которые содержат 0

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 

ответ

4

конвертировать 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 
+0

Спасибо, теперь я понимаю. – WeakTaenie

1

Или использовать LEFT JOIN

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 
Смежные вопросы