データ資格 模擬試験

DS検定 模擬試験 第1回 問70・データエンジニアリング(データ加工(ETL・SQL))

LEFT JOINの行数

customers 表と orders 表(図)に対して、次のSQLが返す行数として正しいものを1つ選べ。
SELECT c.id, o.cid FROM customers c LEFT JOIN orders o ON c.id = o.cid;

customers表は顧客id 1、2、3。orders表は注文101と102がcid 1、注文103がcid 2で、cid 3の注文はない。
  1. A

    4行

  2. B

    3行

  3. C

    9行

  4. D

    2行

正解と解説を見る

正解:A

LEFT JOIN は左の表の行をすべて残し、右の表に対応する行が複数あればその数だけ行を作り、なければ右側を NULL にする。顧客1の2行、顧客2の1行、顧客3の NULL の1行で4行になり、左の表の行数のままだと考えると誤る。

c.ido.cid
11
11
22
3NULL

学習のポイント:結合後の行数は、キーに対応する相手の行数で決まり、1対多の結合では増える。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公開されている出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人データサイエンティスト協会・一般財団法人統計質保証推進協会の公式サービスではありません。