跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

各種 JOIN

上一課學的 INNER JOIN 只會保留「兩邊都有配對到的」。但有時候我們想保留全部。

LEFT JOIN

  • LEFT JOIN = 左邊表全保留,右邊沒配對到的欄位就是 NULL
  • 比喻:考試簽到表(左)vs 成績表(右);有人簽到但沒交卷,成績就空白。

RIGHT JOIN

  • 跟 LEFT JOIN 相反:右邊全留,左邊缺的變 NULL
  • 實務上很少用,因為交換表的位置用 LEFT JOIN 就好

IS NULL 小技巧

搭配 LEFT JOIN,可以找出「右邊沒有配對到」的資料,非常實用。

範例

找出沒有下過訂單的客戶:

三表 JOIN — 訂單帶明細帶商品名:

AI 協作:學了這個,跟 AI 怎麼配合?

INNER JOIN 和 LEFT JOIN 的差別,決定了「漏掉的資料你看不看得到」。

你的人類優勢:

  • 你知道分析目的:只看有訂單的客戶(INNER)還是要包含沒下單的(LEFT)
  • 你能判斷 NULL 值出現是正常(LEFT JOIN 的特性)還是資料有問題

可以這樣跟 AI 說:

我要找出「所有客戶」以及他們的訂單數,包含還沒下過單的客戶,請用 LEFT JOIN。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩

挑戰任務

Task 1

查出所有客戶及他們的訂單,包含沒下過訂單的客戶

Task 2

查出沒有下過訂單的客戶

Task 3

查出每筆訂單買了哪些商品及數量

BackNext Lesson →