一、表
学生表:student
课程表:course
成绩表:score
注:s_id不是主键,而是外键。
教师表:teacher
二、查询
1.查询所有平均分80分以上的学生
SQL:
select sname from student where s_id in( select s_id from score x where (select avg(score) from score y where x.s_id=y.s_id)>80)
分析:此查询的关键在于从成绩表score中查询平均分在80分以上的学生学号,即第2层嵌套的查询,可以看出其对成绩表score 查询了2次,最里面是从成绩表查询平均分avg(score) ,将avg(score) >80作为条件,再查对应的学号s_id,得到这个s_id,就可以利用in从学生表查询结果了。
结果:
2.查询各科成绩的最高分,及对应的学生姓名,课程名称:
原文:http://www.cnblogs.com/wql025/p/4946393.html