副問合せ(サブクエリ)とは?ふくといあわせ
副問合せ(サブクエリ)とは、SELECT文の中に入れ子で書いた別のSELECT文。WHERE句の比較対象、FROM句の導出表、SELECT句の値として使え、返る結果が1つの値か1列複数行かによって受ける演算子が変わる。それ自体で完結しているため、外側とは切り離して先に評価される。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
1回の問合せで答えを出すには、集計した結果をそのまま条件に使いたい場面がある(平均より高い、最新の日付の行だけ、など)。集計と抽出を1つのSELECTへ同居させることはできないため、問合せを入れ子にして中間結果を作る書き方が用意された。結合で書き換えられる場合も多く、どちらが読みやすく速いかは設計上の判断になる。
具体例
「SELECT 氏名 FROM 社員 WHERE 給与 > (SELECT AVG(給与) FROM 社員)」は、内側で平均給与という1つの値を求め、外側の比較に使う。複数行が返る問合せを受けるときは IN や > ALL、> ANY を用い、Oracle DatabaseでもPostgreSQLでも同じ書き方が通る。
試験での引っ掛け
複数行を返す問合せを「=」で受けると実行時エラーになるため、IN・ANY・ALLの使い分けが要る。またNOT INは、内側の結果にNULLが混ざると全体が真にならず、期待した行が1件も返らない。結果が0行のときINは偽になる点と合わせ、NULLの扱いが定番の引っ掛けである。
関連用語
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。