一個表與自身進行連接,稱為自連接
問題的提出:一個網友提出這樣一個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
查找不同課程成績相同的學生的學號、課程號、學生成績
問題的提出:一個網友提出這樣一個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
查找不同課程成績相同的學生的學號、課程號、學生成績
