grade表

SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库

result表

SQL专栏——sql语句的基础操作(五)嵌套子查询_sql_02


subject表

SQL专栏——sql语句的基础操作(五)嵌套子查询_mysql_03

ORDER BY

题目要求;

SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库_04

select r.studentresult
from result r
INNER JOIN subject s
on r.subjectno=s.subjectno
where s.subjectname='数据库结构-1'
Order by r.studentresult desc limit 10;

SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库_05

SQL专栏——sql语句的基础操作(五)嵌套子查询_sql_06

LIMIT

SQL专栏——sql语句的基础操作(五)嵌套子查询_sql_07

select s.studentno,
from student s
INNER JOIN subject s
on r.subjectno=s.subjectno
where s.subjectname='数据库结构-2'
Order by r.studentresult desc limit 5;

SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库_08


SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库_09

select s.studentno,s.studentname,r.studentresult
from student s
join result r
on s.studentno=r.studentno
join subject sub
on sub.subjectno=r.subjectno
where sub.subjectname='JAVA第一学年'
AND r.studentresult>=80
ORDER BY r.studentresult desc limit 0,10;

SQL专栏——sql语句的基础操作(五)嵌套子查询_mysql_10

子查询

SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库_11

mysql> select studentno,studentname 
-> from student where studentno
-> in(select studentno from result where subjectno=(select subjectno from subject where subjectname='高等数学-2' and studentresult>=80));

SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库_12

案例

SQL专栏——sql语句的基础操作(五)嵌套子查询_mysql_13

select s.studentno,s.studentname,r.studentresult
from student s
join result r
on (s.studentno=r.studentno)
where r.subjectno=(select subjectno from subject where subjectname='C语言-1')
ORDER BY r.studentresult desc limit 0,5;

SQL专栏——sql语句的基础操作(五)嵌套子查询_mysql_14


SQL专栏——sql语句的基础操作(五)嵌套子查询_mysql_15


SQL专栏——sql语句的基础操作(五)嵌套子查询_sql_16


SQL专栏——sql语句的基础操作(五)嵌套子查询_数据库_17

select s.subjectname,max(r.studentresult),min(r.studentresult),avg(r.studentresult) avg_score
from subject s
join result r
on s.subjectno=r.subjectno
group by s.subjectname
having avg_score>60;