为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

倚天杖 2018-07-17 14:14:03
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怎么做?
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

泻药,没看出来你这sql哪里会有空值呢? 
左连接、where过滤左表字段、groupby也是左表、取count
过滤到的记录肯定count也不为0

然后说一下空值处理用ifnull(col1,0)即可


查看完整回答
反对 回复 2018-07-24
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

你可以使用 MYSQL IF()Function

SELECT 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)


查看完整回答
反对 回复 2018-07-24
  • 2 回答
  • 0 关注
  • 3424 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信