圖解SQL中JOIN的各種用法
一、概要
JOIN對(duì)于接觸過(guò)數(shù)據(jù)庫(kù)的人,這個(gè)詞都不陌生,而且很多人很清楚各種JOIN,還有很多人對(duì)這個(gè)理解也不是很透徹,這次就說(shuō)說(shuō)JOIN操作。
圖片是很容易被接受和理解,所以嘗試使用圖片來(lái)說(shuō)明一下。
二、JOIN分類
客官:小二,上JOIN分類!
……
小二:客官,新鮮出爐的JOIN分類圖片來(lái)嘍。
三、JOIN分類詳解
客官:小二,速速詳細(xì)道來(lái)!
小二:現(xiàn)在讓小二來(lái)給您詳細(xì)介紹。
INNER JOIN:
僅僅返回兩個(gè)表中,匹配列相同的列值,所在行的數(shù)據(jù)。
- SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1
LEFT OUTER JOIN:
左外連接:返回左表的所有數(shù)據(jù),并且在右表中不能匹配的列值,其坐在行則使用空值。
- SELECT * FROM Tables1 t1 LEFT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2
LEFT OUTER JOIN - WHERE NULL:
返回和右表不匹配的所有數(shù)據(jù)行
- SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL
RIGHT OUTER JOIN:
右外連接:返回右表的所有數(shù)據(jù),并且在左表中不能匹配的列值,其所做在行則使用空值。
- SELECT * FROM Tables1 t1 RIGHT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2
RIGHT OUTER JOIN – WHERE NULL:
返回和左表不匹配的所有數(shù)據(jù)行。
- SELECT * FROM Table1 t1 RIGHT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t1.Col1 IS NULL
FULL OUTER JOIN:
完全連接可看作是左外連接和右外連接結(jié)果之和,返回兩個(gè)表的所有數(shù)據(jù),如果匹配列的值在兩個(gè)表中匹配,那么返回?cái)?shù)據(jù)行,否則返回空值。
- SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1
FULL OUTER JOIN – WHERE NULL:
返回內(nèi)連接以外的數(shù)據(jù)行,即匹配列坐在行以外的所有數(shù)據(jù)。
- SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.ID = t2.ID WHERE t1.ID IS NULL OR t2.ID IS NULL
CROSS JOIN:
交叉連接不需要任何連接條件。這個(gè)會(huì)把兩個(gè)表的的數(shù)據(jù)進(jìn)行笛卡爾積操作。
- SELECT * FROM Table1 t1 CROSS JOIN Table2 t2
小二:小二已經(jīng)介紹完畢,客官,請(qǐng)慢用。