1. 程式人生 > 其它 >[資料庫基礎]——圖解JOIN

[資料庫基礎]——圖解JOIN

一、概要

JOIN對於接觸過資料庫的人,這個詞都不陌生,而且很多人很清楚各種JOIN,還有很多人對這個理解也不是很透徹,這次就說說JOIN操作。

圖片是很容易被接受和理解,所以嘗試使用圖片來說明一下。

二、JOIN分類

客官:小二,上JOIN分類!

……

小二:客官,新鮮出爐的JOIN分類圖片來嘍。

三、JOIN分類詳解

客官:小二,速速詳細道來!

小二:現在讓小二來給您詳細介紹。

INNER JOIN:

僅僅返回兩個表中,匹配列相同的列值,所在行的資料。

SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1

LEFT OUTER JOIN:

左外連線:返回左表的所有資料,並且在右表中不能匹配的列值,其坐在行則使用空值。

SELECT * FROM Tables1 t1 LEFT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

LEFT OUTER JOIN - WHERE NULL:

返回和右表不匹配的所有資料行

SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

RIGHT OUTER JOIN:

右外連線:返回右表的所有資料,並且在左表中不能匹配的列值,其所做在行則使用空值。

SELECT * FROM Tables1 t1 RIGHT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

RIGHT OUTER JOIN – WHERE NULL:

返回和左表不匹配的所有資料行。

SELECT * FROM Table1 t1 RIGHT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t1.Col1 IS NULL

FULL OUTER JOIN:

完全連線可看作是左外連線和右外連線結果之和,返回兩個表的所有資料,如果匹配列的值在兩個表中匹配,那麼返回資料行,否則返回空值。

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 

FULL OUTER JOIN – WHERE NULL:

返回內連線以外的資料行,即匹配列坐在行以外的所有資料。

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:

交叉連線不需要任何連線條件。這個會把兩個表的的資料進行笛卡爾積操作。

SELECT * FROM Table1 t1 CROSS JOIN Table2 t2

小二:小二已經介紹完畢,客官,請慢用。準備洗漱睡覺了。

謝謝@slice@幸福會迷路指出錯誤語句。