2011-05-31 140 views
1
SELECT jos_mod_gdwcomm.*, COUNT(jos_mod_gdwcomm_spam.reportid) `num_spam` 
FROM `jos_mod_gdwcomm` 
WHERE `num_spam` > 0 
LEFT JOIN `jos_mod_gdwcomm_spam` 
ON (jos_mod_gdwcomm.id = jos_mod_gdwcomm_spam.commid) 
GROUP BY jos_mod_gdwcomm.id 
ORDER BY `num_spam` DESC, jos_mod_gdwcomm_spam.datetime DESC 

我怎么能修改此查询,以便它只返回num_spam大于0MySQL查询:使用LEFT JOIN

我tryed把

WHERE `num_spam` > 0 

在少数地方,但行没有运气。

感谢

回答

2

你需要一个HAVING子句:

SELECT jos_mod_gdwcomm.*, COUNT(jos_mod_gdwcomm_spam.reportid) `num_spam` 
FROM `jos_mod_gdwcomm` 
LEFT JOIN `jos_mod_gdwcomm_spam` 
ON (jos_mod_gdwcomm.id = jos_mod_gdwcomm_spam.commid) 
GROUP BY jos_mod_gdwcomm.id 

HAVING num_spam > 0 

ORDER BY `num_spam` DESC, jos_mod_gdwcomm_spam.datetime DESC 
2

尝试用GROUP BY jos_mod_gdwcomm.id HAVING num_spam > 0

+0

感谢它工作不正常approuve你的答案在几分钟内不会让我只是还没有 – StiGMaT 2011-05-31 21:52:54

1

当您要测试聚合函数的条件时,可以使用HAVING子句。