副問い合わせ(サブクエリ)とは?ふくといあわせ
副問い合わせ(サブクエリ)とは、SQL文の中にSELECT文を入れ子にして埋め込む構文。条件値や比較対象の集合を問合せで動的に求めたいときに使う。外側の行ごとに内側が評価される相関副問合せと、内側が1回だけ評価される非相関副問合せの区別が、返る結果と実行性能の両面から問われる。
最終更新:2026-10-06
応用情報を最短で暗記・合格する →背景
正規化で表を分ける以上、「他の表の条件を満たす行だけを取りたい」という要求は必ず生じる。結合で書くこともできるが、結合は行を掛け合わせるため対応先が複数あると重複が生まれ、件数を数える処理では意図しない結果になる。副問合せは、他表を判定にだけ使って結果表の形を変えないという書き方を与えるもので、結合との使い分け自体が設計判断になる。
具体例
SELECT 氏名 FROM 社員 WHERE 部署コード IN (SELECT 部署コード FROM 部署 WHERE 所在地='東京') は非相関で、内側は1回だけ実行される。EXISTS を使って内側から外側の列を参照すれば相関副問合せとなり、外側の行ごとに評価される。
試験での引っ掛け
NOT INは副問合せの結果にNULLが1つでも含まれると1件も返らないのに対し、NOT EXISTSはこの影響を受けない。この差が定番の出題。相関副問合せは外側の行数だけ内側が繰り返されるため、行数の多い表では結合やEXISTSへの書き換えが必要になる。
関連用語
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。