最近要做个统计页面,统计某些种类的记录,其中有几个种类没有记录,就需要记0.
category_id=1 衬衫,
category_id=2 手机,category_id=3 内裤,category_id=3 胸罩
表中category_id=3,4是没有数据的
统计结果是这样的
这样的结果缺少3,4这两种类,和我们展示的结果不符合。当然也可以让前端去处理,那样需要告诉前端具体的种类,得写死种类,或者另外写一个种类接口,告诉前端返回的数据没有的种类你置0,但是现在我自己就是前端啊?卷生卷死的,不能坑自己吧
经过我的不谢努力,终于搞到了想要的数据,99为功
如何实现呢?直接上SQL
select name,code,category_id,IFNULL(count,0) as count from ( select 1 as code ,"衬衫" as name from DUAL UNION ALL select 2,"手机" from DUAL UNION ALL select 3,"内裤" from DUAL UNION ALL select 4,"胸罩" from DUAL )t1 LEFT JOIN ( SELECT category_id ,count(1) as count from cms_subject GROUP BY category_id )t3 on t1.code = t3.category_id
原理:造几个种类的假数据去关联 select 1 as code ,"衬衫" as name from DUAL 这个方法还是很好用的。