數據表的連接

以如下兩張數據表爲例子來分析內連接,左外連接,右外連接,全外連接以及交叉連接的區別:

table_1 

name sex
John man
Lily woman
NULL NULL

table_2
name2 age
Lily 18
Mike 23
NULL NULL

在機子上mysql上創建的兩張表:


1 內連接,即自然連接。只連接匹配的行。

只有兩張表的數據相匹配的記錄才被提取出來。



2 左外連接:包含左邊表的全部以及右表中匹配的行。(不管右邊的表是否存在與他們匹配的行,沒有用NULL表示)



3 右外連接:包含右邊表的全部以及左表中匹配的行。(不管左邊的表是否存在與他們匹配的行,沒有用NULL表示)



4全外連接:包含左右兩個表全部的行(不管另外的表中是否存在與它們匹配的行)

由於mysql不直接支持全外連接,所以利用左連接和有連接,再加上UNION語句實現全外連接



5交叉連接:即生成笛卡爾積。不適用任何匹配條件,直接將左邊的每一行和右邊的表的所有行一一匹配。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章