帮忙看看,怎么简化这条mysql语句,并且优化查询效率~~~~~
程序员文章站
2022-04-23 08:00:11
...
本帖最后由 setoy 于 2013-12-19 12:03:34 编辑 有三张表:管理员表,部门表,和管理员对部门的打分表,如下:
现在要对每个部门的得分情况进行查询并统计,即使某个部门没有得分纪录也要显示他的得分(0分),查询统计的结果如下所示:
mysql语句一直一知半解,东拼西凑写了一段:
貌似这个sql语句太复杂了!能不能简化这条语句呢?另外从查询效率上能不能优化?
表结构、数据和代码都在这里: http://sqlfiddle.com/#!2/6f5db6/10
请帮忙看看
现在要对每个部门的得分情况进行查询并统计,即使某个部门没有得分纪录也要显示他的得分(0分),查询统计的结果如下所示:
mysql语句一直一知半解,东拼西凑写了一段:
select '' as type, `class`.`name` as cname, `score`.`cid`, `score`.`uid`, `user`.`name` as uname, `score`from `score`right join `class` on `score`.`cid` = `class`.`cid`left join `user` on `score`.`uid` = `user`.`uid`union all( select '汇总', `c`.`cname`, `c`.`cid`, `c`.`uid`, count(`cid`) as uname, sum(`score`) as score from ( select '' as type, `class`.`name` as cname, `score`.`cid`, `score`.`uid`, `user`.`name` as uname, `score` from `score` right join `class` on `score`.`cid` = `class`.`cid` left join `user` on `score`.`uid` = `user`.`uid` ) c group by `cname`)order by `cname` asc, `type` asc;
貌似这个sql语句太复杂了!能不能简化这条语句呢?另外从查询效率上能不能优化?
表结构、数据和代码都在这里: http://sqlfiddle.com/#!2/6f5db6/10
请帮忙看看
回复讨论(解决方案)
可以用一句简单的sql + 一段php程序进行实现吗
desc sql
对关键字段,加上索引看看
desc sql
对关键字段,加上索引看看 能具体点么?
上一篇: 解决css禁止html标签被选中的方法
下一篇: 一组超酷汉堡包图标变形动画特效