题解 | #获得积分最多的人(一)#

获得积分最多的人(一)

http://www.nowcoder.com/practice/1bfe3870034e4efeb4b4aa6711316c3b

本题是关于两个表的查询,此处我使用了子查询和关联查询两种方法,结果是关联查询比子查询快约10ms
首先是子查询的方式,对grade_info表根据user_id分组查询出每个用户的总分并获取最高者,
然后嵌套查询user表中对应user_id的name
select name,grade_sum from user,(select user_id,sum(grade_num) as grade_sum
from grade_info
group by user_id
order by grade_sum desc limit 1) as B
where id = user_id

连接查询方案看着会更清晰一些,两个表通过用户id连接
select name,sum(grade_num) as grade_sum
from user join grade_info
on user.id = grade_info.user_id
group by user.id
order by grade_sum desc limit 1

全部评论

相关推荐

头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗? 刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务