mysql表自聯結sql寫法 SQL表自連線用法

2021-10-19 20:49:52 字數 1008 閱讀 8321

乙個表與自身進行連線,稱為自連線

問題的提出:乙個網友提出這樣乙個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

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

MySQL 自聯結 自連線

例如想於下方表中找出與在 愛藝奇 公司的客戶同名的顧客。第一步 找出在 愛藝奇 的客戶的姓名,第二步 從全表中去查詢姓名與第一步查詢出來一樣的客戶 where cust name in in 不能寫成 不然容易報錯。因為子查詢有可能返回的是多條記錄。這跟子查詢只能返回單列無關,單列與單行。子查詢 s...

SQL學習之高階聯結 自聯結 自然聯結 外聯接

這是講解所需要的sql指令碼 一 自聯結 如下 select from customers 現在有個需求,需要給tom同一公司的所有會員傳送一條郵件。分析下基本思路,首先根據tom找到其所在的公司名,在根據公司名找到其公司民下的所有會員。下面是解決 select from customers whe...

mysql 表的聯結

聯結是一種機制,用來在一條select語句中關聯表,因此稱之為聯結。聯結的建立非常簡單,規定要聯結的所有表以及它們如何關聯即可 對多個表都具有的列名,為了避免二義性需要使用完全限定列名。目前為止所用的聯結稱為等值聯結 equijoin 它基於兩個表之間的相等測試。這種聯結也稱為內部聯結。其實,對於這...