Associate Data Practitioner 問題の一覧 › 2. データ分析とプレゼンテーション
注文テーブルのうち、まだ1件も注文のない顧客を顧客テーブルから抽出したい。最も適切な方法はどれか。
- customers INNER JOIN orders ON customers.id = orders.customer_id
- customers LEFT JOIN orders ON customers.id = orders.customer_id WHERE orders.customer_id IS NULL
- customers CROSS JOIN orders
- customers FULL OUTER JOIN orders ON customers.id = orders.customer_id WHERE customers.id IS NOT NULL
💡 答えと解説を見る
答え:B(customers LEFT JOIN orders ON customers.id = orders.customer_id WHERE orders.customer_id IS NULL)
LEFT JOIN で顧客を全件残し、注文側のキーが NULL の行を絞り込むと注文のない顧客が得られる(アンチ結合)。INNER JOIN は注文のある顧客のみ、CROSS JOIN は直積、Dは注文の有無を判別できない。
LEFT JOIN で顧客を全件残し、注文側のキーが NULL の行を絞り込むと注文のない顧客が得られる(アンチ結合)。INNER JOIN は注文のある顧客のみ、CROSS JOIN は直積、Dは注文の有無を判別できない。
※ 学習用に作成したオリジナル問題です。本番試験とは異なります。