Student表
| id | student_id | sex | name |
|---|---|---|---|
| 1 | 1000 | 男 | 慕一春0 |
| 2 | 1001 | 男 | 慕一春1 |
| 3 | 1002 | 男 | 慕一春2 |
| 4 | 1003 | 男 | 慕一春3 |
Grade表
| id | student_id | grade | course |
|---|---|---|---|
| 1 | 1000 | 100 | 语文 |
| 2 | 1000 | 100 | 数学 |
| 3 | 1000 | 100 | 英语 |
| 4 | 1001 | 1 | 语文 |
| 5 | 1002 | 500 | 英语 |
| 6 | 1003 | 22 | 数学 |
- 查询总分成绩排名前三的学生信息。
select DISTINCT id,Student.student_id,sex,name,t.sum from Student , (select student_id,SUM(grade) as sum from Grade Group By `student_id` ORDER BY sum DESC limit 3) as t where Student.student_id = t.student_id
查询结果:

思路:多重嵌套的方式直接写了。有时间遇到后再优化。
Ex: having 一般用于分组后再进行过滤如:每个数据大于、小于或等于某一值。
本文介绍了一个复杂的SQL查询案例,展示了如何通过多重嵌套查询来获取学生表和成绩表中总分排名前三的学生信息,包括其ID、性别、姓名及总分。
1万+

被折叠的 条评论
为什么被折叠?



