订单表中时间字段为create_date,现在要统计一下每天或者每个月的订单数量。
现在的统计是这样去查的:
select DATE_FORMAT(create_date,'%Y年%m月%d日') time,count(*) from order group by time
查出来大概就是这样的:
...
2018年06月01日 87
2018年06月04日 3
2018年06月05日 125
有几天可能一个订单都没有,就会查不出那天的日期和数量。
就像上面我自己模拟的那样,2号3号不存在。
就是希望就算没有订单,也能查出
2018年06月02日 0
2018年06月03日 0
你这么说真的很为难,不过也不是不可以,你先生成对应日期的虚拟表,然后依据这个虚拟表中的日期,进行 where 条件查询。嗯,就是这么简单,应该要写个存储过程吧,因为在存储过程外是不允许循环的。当然了,并不建议你这么做,因为很容易全表查询。建议,统计好对应数据再交由程序进行遍历,如果空缺,默认设置显示当天为空就好。