ソフトウェア開発技術者試験 |
2002年度 = 平成14年度 |
午前 |
問72 |
“業者”表、“仕入れ業者”表に対する次のSQL文と同じ結果が得られるSQL文はどれか。ここで、業者と仕入れ業者の表構造は次のとおりである(下線部は主キーを表す)。
業者(業者番号, 業者名)
仕入れ業者(商品番号, 業者番号)
SELECT 業者名 FROM 業者, 仕入れ業者
WHERE 業者.業者番号 = 仕入れ業者.業者番号 AND 商品番号 = 100
ア SELECT 業者名 FROM 業者 WHERE NOT EXISTS
(SELECT * FROM 仕入れ業者 WHERE 商品番号 = 100)
イ SELECT 業者名 FROM 業者 WHERE NOT EXISTS
(SELECT 商品番号 FROM 仕入れ業者 WHERE 商品番号 = 100)
ウ SELECT 業者名 FROM 業者 WHERE 業者番号 IN
(SELECT 業者番号 FROM 仕入れ業者 WHERE 商品番号 = 100)
エ SELECT 業者名 FROM 業者 WHERE 商品番号 IN
(SELECT 商品番号 FROM 仕入れ業者 WHERE 商品番号 = 100)
ウ
問題文で与えられたSQL文は、商品番号100を扱う仕入先の業者名を取り出します。
ア 商品番号が100である行が1件でも存在すれば何も出力せず、そうでなければ“業者”表の業者名をすべて出力します。
イ 商品番号が100である行が1件でも存在すれば何も出力せず、そうでなければ“業者”表の業者名をすべて出力します。
ウ 正解です。
エ “仕入れ業者”表から商品番号が100である行を抽出し、その商品番号をもつ行を“業者”表から取り出します(“業者”表には商品番号はありませんからエラーです)。