複選題
4.哪些屬於 JOIN 的類型?
(A) INNER JOIN
(B) LEFT JOIN
(C) OUTER JOIN
(D) FULL JOIN
(E) CROSS JOIN
統計: A(13), B(20), C(13), D(15), E(13) #3678260
詳解 (共 1 筆)
【解題思路】
SQL JOIN 的本質是「把兩張表依照關聯欄位結合在一起」。
最常見的 JOIN 類型包括:
-
INNER JOIN
-
LEFT JOIN(LEFT OUTER JOIN)
-
RIGHT JOIN(RIGHT OUTER JOIN)
-
FULL JOIN(FULL OUTER JOIN)
-
CROSS JOIN(笛卡兒積)
所以題目提供的五個選項,全部都屬於 JOIN 類型。
正確答案:
A、B、C、D、E(全部都是 JOIN 類型)
【逐步講解概念】
JOIN 的目的:
把 兩張表(或更多)依照某個欄位連接起來。
JOIN 大致分成兩大類:
-
等值 / 條件 JOIN(根據鍵結合)
-
INNER JOIN
-
LEFT JOIN
-
RIGHT JOIN
-
FULL JOIN
-
-
無條件 JOIN(所有組合)
-
CROSS JOIN(笛卡兒積)
-
【選項逐一破題】
(A) INNER JOIN
取兩表「交集」部分(符合條件的記錄)
→ JOIN 類型,一定正確。
(B) LEFT JOIN(LEFT OUTER JOIN)
保留左表全部紀錄,右表 沒資料的地方補 NULL
→ JOIN 類型,正確。
(C) OUTER JOIN(外部 JOIN 的統稱)
一般指包含 LEFT / RIGHT / FULL
→ 雖然 SQL 常用 LEFT / RIGHT / FULL,但 OUTER JOIN 本身仍為 JOIN 類型。
→ 正確。
(D) FULL JOIN(FULL OUTER JOIN)
取左右兩表所有資料,不符合條件的地方以 NULL 補上
→ JOIN 類型,正確。
(E) CROSS JOIN
笛卡兒積(cartesian product),將兩表做「所有組合」
→ JOIN 類型,正確。
【延伸知識】
JOIN 的常見圖形(推爆記憶):
-
INNER JOIN → 交集
-
LEFT JOIN → 左表全 + 右表符合的
-
RIGHT JOIN → 右表全 + 左表符合的
-
FULL JOIN → 左 + 右全部一起
-
CROSS JOIN → 所有排列組合
【記憶技巧】
一句話:
「內交集、左全留、右全留、全全留、笛卡兒都 JOIN。」
或更短版:
「INNER、LEFT、RIGHT、FULL、CROSS → 全部都是 JOIN。」
【常見錯誤】
-
誤以為 OUTER JOIN 不是 JOIN 類型
其實 OUTER JOIN 是 LEFT/RIGHT/FULL 的上位概念。 -
忽略 CROSS JOIN
但 CROSS JOIN 也是正統 JOIN,且用途特殊(例如產生組合)。 -
搞不清 FULL JOIN 與 OUTER JOIN 的關係
FULL JOIN = FULL OUTER JOIN。
【正確答案】
A、B、C、D、E(全部都是 JOIN 類型)
理由:這五個均屬於 SQL JOIN 的分類。