問題プレビューID: 3b0bb611

問 28

“商品”表,“在庫”表に対する次の SQL 文の結果と同じ結果が得られる SQL 文はどれか。ここで,下線部は主キーを表す。

SELECT 商品番号 FROM 商品
 WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫)

商品表(主キー:商品番号)

商品番号商品名単価

在庫表(主キー:倉庫番号,商品番号)

倉庫番号商品番号在庫数
解説

元の SQL 文は,“商品”表の商品番号のうち“在庫”表に存在しないもの(在庫のない商品)を取り出します。

「エ」は,“商品”表の各行について,“在庫”表に関連する行(商品番号が一致する行)が存在しないことを NOT EXISTS で判定しており,元の SQL 文と同じ結果になります。

  • ア,イは FROM 句が“在庫”表になっているため,取り出す対象が異なります。
  • ウは EXISTS を用いているため,在庫のある商品を取り出してしまい,逆の結果になります。

したがって,正解は「エ」です。