テクノロジ系
春期
基本情報技術者 2014年 春期 問28
28 / 80
“商品”表,“在庫”表に対する次の SQL文の結果と同じ結果が得られる SQL 文は どれか。ここで,下線部は主キーを表す。 SELECT 商品番号 FROM 商品 WHERE商品番号 NOT IN(SELECT 商品番号 FROM 在庫) 商品 商品番号 商品名 単価 倉庫番号 商品番号 在庫数

正解と解説
表示する
正解 エ
SELECT 商品番号 FROM 商品 WHERE NOT EXISTS(SELECT 商品番号 FROM 在庫 WHERE 商品。商品番号=在庫商品番号)
元のSQLは『在庫に存在しない商品番号』を求めるもので、NOT INは相関副問合せを使ったNOT EXISTSで書き換えられます。商品の各行について、在庫に同じ商品番号が存在しないものを選ぶ『商品 WHERE NOT EXISTS(SELECT ... FROM 在庫 WHERE 商品.商品番号=在庫.商品番号)』が同じ結果になります。