SQL4 択難易度 標準

次の SQL の結果は?(注文の user_id は 1, 1, 3)

SELECT name FROM usersWHERE id IN (SELECT user_id FROM orders) ORDER BY name;

正答

  1. ann, ann, cat
  2. bob
  3. ann, cat
  4. ann, bob, cat

解説

IN (サブクエリ) は、外側の行の id がサブクエリの結果に含まれるかを判定する条件なので、注文が 2 件ある ann も 1 行のまま返る。選択肢 1 のように行が重複するのは JOIN で結合したときの挙動で、IN では起きない。bob(id 2)は注文が無いので含まれず、選択肢 2 の bob だけが返るのは NOT IN にしたときの結果である。

参考: www.sqlite.org

subqueryin

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ