mysql在count时带有left join和group by,如何让count为0的结果显示0

SELECT COUNT(*)AS cnt FROM info AS i LEFT JOIN user AS u ON i.grpid=u.grpid WHERE i.type=1 GROUP BYi.grpid

这样查询出来的没有结果的数据不显示,想让没有结果的数据显示为0怎么做?


倚天杖
浏览 3427回答 2
2回答

幕布斯6054654

泻药,没看出来你这sql哪里会有空值呢? 左连接、where过滤左表字段、groupby也是左表、取count过滤到的记录肯定count也不为0然后说一下空值处理用ifnull(col1,0)即可

哆啦的时光机

你可以使用 MYSQL IF()FunctionSELECT IF(SELECT COUNT(*)AS cnt FROM info AS i LEFT JOIN user AS u ON i.grpid=u.grpid WHERE i.type=1 GROUP BY i.grpid) = 0 , "0", SELECT COUNT(*)AS cnt FROM info AS i LEFT JOIN user AS u ON i.grpid=u.grpid WHERE i.type=1 GROUP BY i.grpid) AS cnt;以下是IF 的 Syntax   IF(condition, value_if_true, value_if_false)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL