交叉合併(卡氏積)
內部合併
左外部合併
右外部合併
完全外部合併
自我合併
交叉合併(卡氏積)
假如有兩個資料關聯表,分別為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 |
自我合併
只有一個關聯表,但在合併時候會當成兩個不同關聯表來處理
例如有一個關聯表為學生資料,現在要查詢哪幾個學生為班級幹部
這時候就可以使用自我合併