応用情報 午前ラボ

学習の画面へ

NOT EXISTS を使った SQL の結果

出典: 令和5年度 秋期 応用情報技術者試験 午前 問29 (IPA)

“製品”表と“在庫”表に対し,次の SQL 文を実行した結果として得られる表の行数は幾つか。

SELECT DISTINCT 製品番号 FROM 製品
  WHERE NOT EXISTS (SELECT 製品番号 FROM 在庫
    WHERE 在庫数 > 30 AND 製品.製品番号 = 在庫.製品番号)

製品

製品番号製品名単価
AB1805CD-ROM ドライブ15,000
CC5001デジタルカメラ65,000
MZ1000プリンタ A54,000
XZ3000プリンタ B78,000
ZZ9900イメージスキャナ98,000

在庫

倉庫コード製品番号在庫数
WH100AB180520
WH100CC5001200
WH100ZZ9900130
WH101AB1805150
WH101XZ300030
WH102XZ300020
WH102ZZ990010
WH103CC500140
  1. ア 1
  2. イ 2
  3. ウ 3
  4. エ 4
正解と解説を見る

正解: イ

ポイント

NOT EXISTS は「副問合せの結果が 1 行もない」ときに真になります。つまり 在庫数が 30 より多い在庫が 1 つもない製品 を探します。

製品番号在庫数30 超の在庫結果
AB180520,150あり×
CC5001200,40あり×
MZ1000(なし)なし○
XZ300030,20なし (30 は 30 超ではない)○
ZZ9900130,10あり×

よって 2 行 です。

「データベース」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)