2011-05-31 3 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 

Comment puis-je modifier cette requête il ne retourne que les lignes num_spam est supérieure à 0.requête MYSQL: UTILISATION LEFT JOIN

i tryed mettre

WHERE `num_spam` > 0 

Dans quelques endroits, mais pas de chance.

Merci

Répondre

2

Vous devez 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

Essayez avec GROUP BY jos_mod_gdwcomm.id HAVING num_spam > 0.

+0

Merci cela fonctionne mal approuve votre réponse dans quelques minutes ... ne me laisse pas encore – StiGMaT

1

Lorsque vous souhaitez tester une condition sur une fonction d'agrégation, utilisez une clause HAVING.