交叉合併(卡氏積)
內部合併
左外部合併
右外部合併
完全外部合併
自我合併
交叉合併(卡氏積)
假如有兩個資料關聯表,分別為X與Y
合併的結果:X*Y=Z,Z為X與Y的乘積
X關聯表
X.t1 |
X.t2 |
X.t3 |
Y關聯表
Y.t1 |
Y.t2 |
Y.t3 |
合併後的關聯表(Z)
X.t1 | Y.t1 |
X.t1 | Y.t2 |
X.t1 | Y.t3 |
X.t2 | Y.t1 |
X.t2 | Y.t2 |
X.t2 | Y.t3 |
X.t3 | Y.t1 |
X.t3 | Y.t2 |
X.t3 | Y.t3 |
內部合併
又稱為條件式合併,也就是卡氏積加上條件限制(=、!=、>、<)
X關聯表
員工代號 | 員工姓名 |
0001 | ANDY |
0002 | BILL |
0003 | ALEX |
Y關聯表
客戶代號 | 負責的員工代號 |
C1 | 0001 |
C2 | 0002 |
C3 | 0001 |
C4 | Null |
內部合併後(條件:查詢每個員工所負責的客戶)
員工代號 | 員工姓名 | 客戶代號 | 負責的員工代號 |
0001 | ANDY | C1 | 0001 |
0001 | ANDY | C3 | 0001 |
0002 | BILL | C2 | 0002 |
左外部合併
以左邊的關聯表為主,合併後左邊的關聯表所有資料都會出現
右邊的關聯表若無法與左邊關聯表對應,欄位的屬性會以Null顯示
若把上面內部合併的例子更改成左外部合併會變成:
員工代號 | 員工姓名 | 客戶代號 | 負責的員工代號 |
0001 | ANDY | C1 | 0001 |
0001 | ANDY | C3 | 0001 |
0002 | BILL | C2 | 0002 |
0003 | ALEX | Null | Null |
右外部合併
以右邊的關聯表為主,合併後右邊的關聯表所有資料都會出現
左邊的關聯表若無法與右邊關聯表對應,欄位的屬性會以Null顯示
若把上面內部合併的例子更改成右外部合併會變成:
員工代號 | 員工姓名 | 客戶代號 | 負責的員工代號 |
0001 | ANDY | C1 | 0001 |
0001 | ANDY | C3 | 0001 |
0002 | BILL | C2 | 0002 |
Null | Null | C4 | Null |
完全外部合併
左右邊的關聯表欄位屬性都會出現,若有無法對應的欄位,就顯示Null
員工代號 | 員工姓名 | 客戶代號 | 負責的員工代號 |
0001 | ANDY | C1 | 0001 |
0001 | ANDY | C3 | 0001 |
0002 | BILL | C2 | 0002 |
Null | Null | C4 | Null |
0003 | ALEX | Null | Null |
自我合併
只有一個關聯表,但在合併時候會當成兩個不同關聯表來處理
例如有一個關聯表為學生資料,現在要查詢哪幾個學生為班級幹部
這時候就可以使用自我合併