SQL表自連接用法


 
一個表與自身進行連接,稱為自連接

問題的提出:一個網友提出這樣一個SQL題目,說自己想了很久沒解決,我一看,這不是很簡單嗎
可是自己在查詢分析器調試了半天原來問題並不是那不簡單


有一個學生表,里面有 學號 功課編號
學生成績三個字段.用一個SQL查詢語句得出每門功課成績最好的前兩名

學號  功課編號     學生成績
 1          1             99
 2          1             98
 3          1             100
 4          2             88
 5          2             87
 6          2             88
 7          3             99
 8          3             88
 9          3             100

解決方法
SELECT DISTINCT 學生表1.*
FROM 學生表 學生表1 INNER JOIN
      學生表 學生表2 ON 學生表1.學號 IN
          (SELECT TOP 2 學生表.學號
         FROM 學生表
         WHERE 學生表.功課編號 = 學生表1.功課編號
         ORDER BY 學生成績 DESC)

查詢結果
學號  功課編號     學生成績
 1          1             99
 2          1             98
 4          2             88
 6          2             88
 7          3             99
 9          3             100





查找不同課程成績相同的學生的學號、課程號、學生成績
 

SELECT 學生表1.*
FROM 學生表 學生表1 WHERE 學生表1.學號 IN
 (SELECT TOP 2 學生表.學號
 FROM 學生表
 WHERE 學生表.功課編號 = 學生表1.功課編號
 ORDER BY 學生成績 DESC)


免責聲明!

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



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