資料表合併類型

交叉合併(卡氏積)

內部合併

左外部合併

右外部合併

完全外部合併

自我合併


 

交叉合併(卡氏積)

假如有兩個資料關聯表,分別為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

 

自我合併

只有一個關聯表,但在合併時候會當成兩個不同關聯表來處理

例如有一個關聯表為學生資料,現在要查詢哪幾個學生為班級幹部

這時候就可以使用自我合併