思路大概都懂
就是子查询那块理不清楚
谁能把
(select num from score as s2 where s2.course_id = s1.course_id order by num desc limit 0,1)
给我梳理一下
着重讲一下where s2.course_id = s1.course_id 这句的作用
哈哈,这个sql有点意思,我简单理解了一下,应该是取每一个course(课程)的分数在前两位的所有数据取出来
(select num from score as s2 where s2.course_id = s1.course_id order by num desc limit 0,1) 这个语句就是取每一门课的最高分
where s2.course_id = s1.course_id 这句对应关系搞不太清楚
你知不知道这句作用是啥啊
这个as的作用是什么啊?菜鸟入坑,求解答
@kingyanru: as 就是(表score )的一个别名
@猴子哥:谢谢,新手入坑,因为as可以省略一下忘记了。
@rongz: 我用比较通俗的白话文给你说,看你能不能够听懂:
1、数据查询的时候,其实也就遍历一条一条的去数据匹配数据获取符合要求的数据
2、这而的where 你就可以这样理解,当遍历到某一条数据时,通过子查询获取该数据的course_id 分数最高的两个分数
3、最后在把查询子查询出来的最两个最高分作为一个临时表,在和score 进行关联查询
不知道这样说,你能够明白不?
@kingyanru: 没事,相互学习嘛
@猴子哥: 哈哈哈 我明白了 看你第二条说到遍历想了一下就感觉想通了 多谢了啊
@rongz 不用谢,相互学习嘛
这个应该是多表查询,通过s2 的课程id和s1中的课程id匹配,查询对应的成绩