副問い合わせ(サブクエリ)とは?
副問い合わせ(サブクエリ)とは、SQL文の中に、別のSELECT文を入れ子にして埋め込む構文。条件の一部として動的に値の集合を求めたい場合などに使う。
応用情報技術者試験の過去問では2回出題されています(2022年度〜2023年度)。
ふくといあわせ
副問い合わせ(サブクエリ)の意味
SQL文の中に、別のSELECT文を入れ子にして埋め込む構文。条件の一部として動的に値の集合を求めたい場合などに使う。
副問い合わせ(サブクエリ)の具体例
SELECT 氏名 FROM 社員 WHERE 部署コード IN (SELECT 部署コード FROM 部署 WHERE 所在地='東京') のように書けば、東京にある部署に所属する社員だけを抽出できる。
副問い合わせ(サブクエリ)は試験でどう引っ掛けられる?
相関副問い合わせと非相関副問い合わせの区別が問われる。外側の表の列を内側が参照していれば相関副問い合わせで、外側の行ごとに内側が繰り返し実行される。参照していなければ内側は1回だけ実行される。またNOT INは、副問い合わせの結果にNULLが1つでも含まれると結果が1件も返らない(NOT EXISTSならこの影響を受けない)。
副問い合わせ(サブクエリ)と関連する用語
副問い合わせ(サブクエリ)が出た過去問
“商品”表に対して、次のSQL文を実行して得られる仕入先コード数は幾つか。 〔SQL文〕 SELECT DISTINCT 仕入先コード FROM 商品 WHER…
正解:3
要点:副問合せの平均値と比較しDISTINCTで重複を除く
各行の利益(販売単価−仕入単価)は200, 200, 100, 900, 400, 200, 300, 500, 500, 300で、合計3,600、平均は360です。これを上回るのは900のD004、400のE005、500のH008、500のI009の4行で、仕入先コードはS1・S1・S4・S5。DISTINCTで重複を除くとS1、S4、S5の3件になります。
出典:令和4年度 秋期 応用情報技術者試験 午前 問28(IPA)“製品”表と“在庫”表に対し、次のSQL文を実行した結果として得られる表の行数は幾つか。SELECT DISTINCT 製品番号 FROM 製品 WHERE N…
正解:2
要点:NOT EXISTSは副問合せが空になる行だけを残す
NOT EXISTSは、相関副問合せが1行も返さない製品だけを残す。在庫数が30を超える行を持つ製品はAB1805(150)、CC5001(200と40)、ZZ9900(130)の3つで、XZ3000は30と20なので条件を満たさず、MZ1000は在庫表に行がない。したがって結果に残るのはMZ1000とXZ3000の2行である。
出典:令和5年度 秋期 応用情報技術者試験 午前 問29(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。