天天看點

SQL專欄——sql語句的基礎操作(五)嵌套子查詢

grade表

SQL專欄——sql語句的基礎操作(五)嵌套子查詢

result表

SQL專欄——sql語句的基礎操作(五)嵌套子查詢

subject表

SQL專欄——sql語句的基礎操作(五)嵌套子查詢

ORDER BY

題目要求;

SQL專欄——sql語句的基礎操作(五)嵌套子查詢
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語句的基礎操作(五)嵌套子查詢
SQL專欄——sql語句的基礎操作(五)嵌套子查詢

LIMIT

SQL專欄——sql語句的基礎操作(五)嵌套子查詢
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語句的基礎操作(五)嵌套子查詢
SQL專欄——sql語句的基礎操作(五)嵌套子查詢
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語句的基礎操作(五)嵌套子查詢

子查詢

SQL專欄——sql語句的基礎操作(五)嵌套子查詢
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語句的基礎操作(五)嵌套子查詢

案例

SQL專欄——sql語句的基礎操作(五)嵌套子查詢
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語句的基礎操作(五)嵌套子查詢
SQL專欄——sql語句的基礎操作(五)嵌套子查詢
SQL專欄——sql語句的基礎操作(五)嵌套子查詢
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;