mysql內連線查詢之自連線

2022-07-06 20:18:10 字數 1164 閱讀 1495

連線查詢:

當查詢資料時,通過連線操作查詢出存放在多個表中的不同資料,當兩個或者多個表中存在相同意義的字段時,

便可以通過這些欄位對不同的表進行連線查詢。

自連線:

如果在乙個連線查詢中,涉及的兩個表都是同乙個表,這種查詢稱為自連線查詢。自連線是一種特殊的內連線,

它是指相互連線的表在物理上為同一張表,但可以在邏輯上分為兩張表。

例:下面是一張公司員工表,要求找出每個員工的上級,並顯示員工名和上級名。

如圖,name表示員工名,id表示員工編號,mac表示上級編號

此時,員工表和上級表在同乙個表中,應該用到自連線,仔細觀察可以發現欄位id和字段mac有關聯,

因此邏輯上可以把一張表看作兩張表

emp a 員工表

emp b 上級表

sql語句

查詢結果

可以發現員工名和上級名反了。

錯誤在哪呢?其實最後的等值條件錯了,

兩張表的關係為員工的上級編號=上級的員工編號

所以修改sql為

查詢結果

查詢正確

總結:關於自連線應該理解它是把一張表看作兩張表關鍵在於找兩張表的關係,只要能找到關係,就能夠寫出sql語句。

mysql自連線查詢 Mysql自連線查詢例項詳解

自連線查詢 假想以下場景 某一電商 想要對站內產品做層級分類,乙個類別下面有若干子類,子類下面也會有別的子類。例如數碼產品這個類別下面有筆記本,台式電腦,智慧型手機等 筆記本,台式電腦,智慧型手機又可以按照品牌分類 品牌又可以按照 分類,等等。也許這些分類會達到乙個很深的層次,呈現一種樹狀的結構。那...

SQL查詢 內連線 外連線 自連線查詢

先建立2個表 學生表和教師表 在每個表中找出符合條件的共有記錄。x inner join y on.第一種寫法 只用where select t.teacher name,s.student name from teacher t,student s where t.id s.teacher id ...

mysql自連線例項 Mysql自連線查詢例項詳解

自連線查詢 假想以下場景 某一電商 想要對站內產品做層級分類,乙個類別下面有若干子類,子類下面也會有別的子類。例如數碼產品這個類別下面有筆記本,台式電腦,智慧型手機等 筆記本,台式電腦,智慧型手機又可以按照品牌分類 品牌又可以按照 分類,等等。也許這些分類會達到乙個很深的層次,呈現一種樹狀的結構。那...