【sql: 練習題12】檢索" 01 "課程分數小於 60,按分數降序排列的學生信息


題目:檢索" 01 "課程分數小於 60,按分數降序排列的學生信息

分析:按分數降序排列 應該是要用 order by 關鍵字

降序: desc

升序:asc

 

我以前的寫的想法是: 先查處01 "課程分數小於 60 然后 order by  分數 desc 再去關聯student 表

SELECT student.*,r.score FROM student,
     (SELECT * FROM student_score WHERE student_score.courseid = 01 AND student_score.score< 60 ORDER BY score DESC)r
WHERE student.id = r.studentid;

其實這樣先排序 再去查student 表,查出的學生並不是按照分數降序排序的 沒有達到效果

 

優化:先不排序,查出來學生再排序

 

SELECT student.*,r.score FROM student,
     (SELECT * FROM student_score WHERE student_score.courseid = 01 AND student_score.score< 60)r
WHERE student.id = r.studentid ORDER BY r.score DESC;

 

 

 

再次優化:可以多表查詢

 

 

SELECT student.*,score FROM student,student_score WHERE
   student.id = student_score.studentid AND student_score.courseid = 01 AND student_score.score < 60 ORDER BY score DESC

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM