想在複習一次。
簡述
關聯式資料庫最重要的就是「關聯」,當我們要把兩個 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 來填。



