欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

帮忙看看,如何简化这条mysql语句,并且优化查询效率~

程序员文章站 2022-05-26 17:06:44
...
帮忙看看,怎么简化这条mysql语句,并且优化查询效率~~~~~
本帖最后由 setoy 于 2013-12-19 12:03:34 编辑 有三张表:管理员表,部门表,和管理员对部门的打分表,如下:
帮忙看看,如何简化这条mysql语句,并且优化查询效率~

现在要对每个部门的得分情况进行查询并统计,即使某个部门没有得分纪录也要显示他的得分(0分),查询统计的结果如下所示:
帮忙看看,如何简化这条mysql语句,并且优化查询效率~

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
请帮忙看看

网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 帮忙看看,如何简化这条mysql语句,并且优化查询效率~
  • 专题推荐

    作者信息
    帮忙看看,如何简化这条mysql语句,并且优化查询效率~

    认证0级讲师

    推荐视频教程
  • 帮忙看看,如何简化这条mysql语句,并且优化查询效率~javascript初级视频教程
  • 帮忙看看,如何简化这条mysql语句,并且优化查询效率~jquery 基础视频教程
  • 视频教程分类