“商品”表,“在庫”表に対する次のSQL文の結果と同じ結果が得られるSQL文はどれか。ここで,下線部は主キーを表す。
SELECT 商品番号 FROM 商品
WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫)
解答 エ
【副問合せ】
SELECT 商品番号 FROM 商品
WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫)
“商品”表から,“在庫”表に存在しない,商品番号を抽出する。
つまり,
“商品”表に存在し,“在庫”表に存在しない,商品番号を抽出する。
【相関副問合せ】
SELECT 商品番号 FROM 商品 ・・・①
WHERE NOT EXISTS (SELECT 商品番号 FROM 在庫
WHERE 商品.商品番号 = 在庫.商品番号) ・・・②
①“商品”表から1行目の商品番号が②へ渡される。
②“在庫”表から存在の有無が評価される。存在しない(NOT EXITS)ならば抽出される。
①“商品”表から2行目の商品番号が②へ渡される。
②“在庫”表から存在の有無が評価される。存在しない(NOT EXITS)ならば抽出される。
その繰り返し