使用 anti join 診斷問題
做得好,已經掌握 semi join!anti join 是一個相關且強大的連接工具。當你想檢查某次連接是否出現了不正確的筆數時,它特別好用。
假設你想找出大洋洲國家的貨幣。你寫了以下 INNER JOIN,回傳了 15 筆結果。現在你想確認 countries 資料表中所有屬於大洋洲的國家是否都包含在這個結果裡。你會先在第一步完成這件事。
SELECT c1.code, name, basic_unit AS currency
FROM countries AS c1
INNER JOIN currencies AS c2
ON c1.code = c2.code
WHERE c1.continent = 'Oceania';
如果這個 INNER JOIN 排除了任何大洋洲國家,你想回傳這些國家的名稱。你會在第二步用 anti join 來做到這點!
本練習屬於課程