微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MYSQL查询:使用LEFT JOIN

如何解决MYSQL查询:使用LEFT JOIN

|
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大于0的行。 我尝试把
WHERE `num_spam` > 0
在少数地方,但是没有运气。 谢谢     

解决方法

        您需要一个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
    ,        尝试
GROUP BY jos_mod_gdwcomm.id HAVING num_spam > 0
。     ,        如果要测试聚合函数上的条件,请使用a4ѭ子句。
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 COUNT(jos_mod_gdwcomm_spam.reportid) > 0 
    ORDER BY `num_spam` DESC,jos_mod_gdwcomm_spam.datetime DESC
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。