2011-02-26 76 views
0

我想知道有多少用戶answerd一個問題,所以我做了查詢:SQL - 伯爵查詢問題

SELECT answer.idAnswer, 
      answer.title, 
      answercategory.label, 
      (SUM(1)) as nbAnswer 
     FROM ANSWER 
INNER JOIN answerCategory ON answer.idAnswerCategory = answercategory.idAnswerCategory 
LEFT JOIN answerUser ON answer.idAnswer = answerUser.idAnswer 
    GROUP BY answer.idAnswer 

它幾乎工作,只有不工作的事情是,它給我。「一個」回答,如果沒有人回答了這個問題(這意味着即使沒有記錄在answerUser)。在這種情況下,我希望有零而不是一個。如果我添加一個「-1」,當有一個答案,我會得到零。任何想法如何我可以糾正?

+0

這是MySQL或SQLite的? – 2011-02-26 04:25:10

回答

2

使用COUNT(answerUser.idAnswer)而不是SUM(1)。 Count將忽略由LEFT JOIN創建的NULL行。

1

使用COUNT(*),而不是SUM(1)

1
SELECT answer.idAnswer, answer.title, answercategory.label, count(*) as nbAnswer 
FROM answer 
INNER JOIN answerCategory on answer.idAnswerCategory = answercategory.idAnswerCategory 
LEFT JOIN answerUser ON answer.idAnswer = answerUser.idAnswer 
GROUP BY answer.idAnswer