mysql按条件统计count,及关联查询显示count为0的记录问题
发表于:2021-12-24 09:43:51浏览:5094次
业务场景是这样的。我在关联查询时,需要按不同的条件,统计出两个或者多个count。并且也要显示出count为0的记录。
拆分问题:
1、按条件统计多个count
2、使用count后关联查询失效。count为0的记录不显示。
解决方法如下:
1、按条件统计count可以用如下方法
COUNT(IF(条件 , 统计字段, NULL))
SELECT t1.*,COUNT(IF(t3.status = 1 , t2.id, NULL)) AS downCount,COUNT(IF(t3.status = 2 , t2.id, NULL)) AS upCount FROM ex_exam_question t1 LEFT JOIN ex_exam_question_suggestion t2 ON t2.question_id = t1.`id` LEFT JOIN ex_exam_question_suggestion_item t3 ON t2.suggestion_item_id = t3.id WHERE 1=1
2、解决关联查询失效问题
通过加group by来解决
将上述sql修改如下
SELECT t1.*,COUNT(IF(t3.status = 1 , t2.id, NULL)) AS downCount,COUNT(IF(t3.status = 2 , t2.id, NULL)) AS upCount FROM ex_exam_question t1 LEFT JOIN ex_exam_question_suggestion t2 ON t2.question_id = t1.`id` LEFT JOIN ex_exam_question_suggestion_item t3 ON t2.suggestion_item_id = t3.id WHERE 1=1 GROUP BY t1.`id`
栏目分类全部>
推荐文章
- 实现本地svn目录同步时,服务器的相应目录保持自动同步
- BootCDN——稳定、快速、免费的前端开源项目 CDN 加速服务
- SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length
- JavaScript之干货(一)---走进JS世界
- ThinkPHP数据查询去重distinct和group by方法
- win10系统重装应用商店:安装路径不存在 该怎么办?
- Linux shell脚本删除某个文件夹下所有文件
- 图片变形处理,可设置CSS属性object-fit: cover完美解决
- vue - element-ui -> el-tag 标签状态
- windows批处理,批量替换文件、文件夹名中的空格
