データベース

基本情報技術者試験 科目A免除 修了試験 20160124 実施分 問28

“商品”表,“在庫”表に対する次の SQL 文の結果と同じ結果が得られる SQL 文はどれか。ここで,下線部は主キーを表す。
SQL 文: SELECT 商品番号 FROM 商品 WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫) 表定義(下線部は主キー): 商品(商品番号, 商品名, 単価) 主キー: 商品番号 在庫(倉庫番号, 商品番号, 在庫数) 主キー: 倉庫番号, 商品番号
答えを選ぶ

出典:基本情報技術者試験 科目A免除 修了試験 20160124 実施分 問28(問題文は IPA の公開問題。解説は当サイト作成)

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:エ

覚える知識

SQLのNOT INとNOT EXISTSの等価性

NOT IN (副問合せ) は、相関条件を付けたNOT EXISTSで書き換えられる。

この問題で必要なこと

NOT INによる副問合せは、相関副問合せ付きのNOT EXISTSと等価で、主表側の行を在庫に存在しないものに絞る。

ひっかけ

相関条件のないEXISTS/NOT EXISTSや、取得元の表を取り違えた選択肢。

この知識の出題:本試験系 2 回・免除試験 6 回(公開問題での観測値)。頻出知識ランキング259位(全1,254件中)。

この知識をアプリで解いて覚える レッスン「SQLの検索条件(WHERE・LIKE・IN・EXISTS)」で学ぶ

同じ知識の過去問