■
"製品"表と"在庫"表に対して, 次の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
答えは×(ウ)→(イ)
以下の考え方は間違いでした。
("製品"表 の製品番号にある"在庫"表の製品番号で、かつ在庫数が30より大きい)という条件で存在しないものの製品番号を"製品"表から選ぶ。
条件に当てはまるデータは4件で、製品番号は3種類。
┌────┬───┐ │製品番号│在庫数│ ├────┼───┤ │AB1805 │ 20 │ │XZ3000 │ 30 │ │XZ3000 │ 20 │ │ZZ9900 │ 10 │ └────┴───┘
よって答えは(ウ)の3(行)。