■
"製品"表と"在庫"表に対して, 次のSQL文を実行した場合, 実行結果として得
られる表の行数は幾つか。SELECT 製品番号 FORM 製品 WHERE NOT EXISTS( SELECT 製品番号 FROM 在庫 WHERE 製品番号 = 製品.製品番号 AND 在庫数 > 30 ) 製品 在庫 ┌────┬────────┬───┐ ┌─────┬────┬───┐ │製品番号│ 製品名 │ 単価 │ │倉庫コード│製品番号│在庫数│ ┝━━━━┿━━━━━━━━┿━━━┥ ┝━━━━━┿━━━━┿━━━┥ │ AB1805 │CD-ROMドライブ │15,000│ │ WH100 │ AB1805 │ 20 │ ├────┼────────┼───┤ ├─────┼────┼───┤ │ CC5001 │ディジタルカメラ│65,000│ │ WH100 │ CC5001 │ 200 │ ├────┼────────┼───┤ ├─────┼────┼───┤ │ MZ1000 │プリンタ A │54,000│ │ WH100 │ ZZ9900 │ 130 │ ├────┼────────┼───┤ ├─────┼────┼───┤ │ XZ3000 │プリンタ B │78,000│ │ WH101 │ AB1805 │ 150 │ ├────┼────────┼───┤ ├─────┼────┼───┤ │ ZZ9900 │イメージスキャナ│98,000│ │ WH101 │ XZ3000 │ 30 │ └────┴────────┴───┘ ├─────┼────┼───┤ │ WH102 │ XZ3000 │ 20 │ ├─────┼────┼───┤ │ WH102 │ ZZ9900 │ 10 │ ├─────┼────┼───┤ │ WH103 │ CC5001 │ 40 │ └─────┴────┴───┘ア 1
イ 2
ウ 3
エ 4
■キーワード■ 副問合せ(SQL)
■解答■
テクニカルエンジニア(データベース)午前平成14年問31
イ 2
> 主問い合わせで選択された製品番号が,副問い合わせの条件を満たしていない
> 場合のみ,その製品番号を選択する
> 製品番号 AB1805:"在庫"表に在庫数が 30 より多いレコードがあるので
> 選択しない
> 製品番号 CC5001:"在庫"表に在庫数が 30 より多いレコードがあるので
> 選択しない
> 製品番号 MZ1000:"在庫"表に製品番号がないので選択する
> 製品番号 XZ3000:"在庫"表に在庫数が 30 より多いレコードがないので
> 選択する
> 製品番号 ZZ9900:"在庫"表に在庫数が 30 より多いレコードがあるので
> 選択しない
> 結果は,製品番号が MZ1000(プリンタ A),XZ3000(プリンタ B)の 2 行
どうもありがとうございました。
> 「製品」表 「在庫」表
> 製品番号:AB1805 → 在庫数: 20・150
> 製品番号:CC5001 → 在庫数:200・ 40
> 製品番号:MZ1000 → 在庫数:該当なし
> 製品番号:XZ3000 → 在庫数: 30・ 20
> 製品番号:ZZ9900 → 在庫数:130・ 10
>
> "在庫数 > 30 "の条件で選択される製品番号はAB1805、CC5001、ZZ9900
> "NOT EXISTS"条件なので上記以外の製品番号MZ1000、XZ3000の2行が選択される。
どうもありがとうございました。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-