想在複習一次。
簡述
關聯式資料庫最重要的就是「關聯」,當我們要把兩個 table 用某個欄位給關聯起來時就會用到 JOIN
的語法,在那之前先認識一下 JOIN 的種類:
- (INNER) JOIN 交集
- LEFT JOIN 合併到左邊的 table
- RIGHT JOIN 合併到右邊的 table
- OUTER JOIN 聯集
參考這張圖會好理解很多:
(INNER) JOIN
在 Users 的 ID 有 1 2 3 4 5
,Likes 的 User ID 有 3 1 1 6 4
。INNER JOIN
就是把兩個 table 有對應到的關聯欄位留下來。
上面的例子是 1 3 4
,最後只會把出現 1 3 4
的欄位合在一起。
LEFT JOIN(最常用)
在 Users 的 ID 有 1 2 3 4 5
,Likes 的 User ID 有 3 1 1 6 4
。LEFT JOIN
就是把左邊的 table 全部留下,右邊只留下有對應的欄位。
所以 Users 會全部留下,而 Likes 只留下 3 1 1 4
,沒對應的地方就用 null 來填。
RIGHT JOIN
在 Users 的 ID 有 1 2 3 4 5
,Likes 的 User ID 有 3 1 1 6 4
。RIGHT JOIN
就是把右邊的 table 全部留下,左邊只留下有對應的欄位。
所以 Likes 會全部留下,而 Users 只留下 1 3 4
,沒對應的地方就用 null 來填。
OUTER JOIN
在 Users 的 ID 有 1 2 3 4 5
,Likes 的 User ID 有 3 1 1 6 4
。OUTER JOIN
就是把不管有沒有關聯都留下。
所以 Users 跟 Likes 會全部留下,沒對應的地方就用 null 來填。