2011-07-21 38 views
2

我正在使用MYSQL。 我有以下查詢:按另一個表的數量計算MYSQL

SELECT answers.data. * , COUNT(answers.reports.id) AS rcount 
FROM answers.data 
LEFT JOIN answers.reports ON answers.data.id = answers.reports.answer_id 
WHERE answers.data.question='4' 
GROUP BY answers.data.id 

它返回了我所有的答案,目前的問題,並添加列名爲RCOUNT(一些報告)

我希望它返回只有那些具有小於3份報告。我嘗試了以下代碼:

SELECT answers.data. * , COUNT(answers.reports.id) AS rcount 
FROM answers.data 
LEFT JOIN answers.reports ON answers.data.id = answers.reports.answer_id 
WHERE answers.data.question='4' AND rcount < '3' 
GROUP BY answers.data.id 

但是很明顯,這並不是新情況發生的地方。由於我是新手,因此無法在手冊中找到解決方案。 感謝

回答

6

使用HAVING條款:

SELECT answers.data.* , COUNT(answers.reports.id) AS rcount 
FROM answers.data 
LEFT JOIN answers.reports ON answers.data.id = answers.reports.answer_id 
WHERE answers.data.question='4' 
GROUP BY answers.data.id 
HAVING COUNT(answers.reports.id) < 3 
+0

這工作就像一個魅力。來自其他編程領域我根本不習慣語法。我通過自己(和手冊)計算了所有其他東西,但是在這一個中丟失了。謝謝 – Riskz

+1

我非常喜歡SQL。皮蒂它會過時... –

+0

時尚趨勢來去。 Classic保持永遠。 –

相關問題