応用情報暗記無料で始める

相関副問合せとは?そうかんふくといあわせ

相関副問合せとは、副問合せの内側から、外側の問合せの列を参照する形の副問合せ。外側の行が1件確定するたびに内側が評価し直されるため、内側だけを単独で実行することはできない。行ごとに比較の基準そのものが変わる条件を、1つのSQL文で表現できるのが採用理由になる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では1問の解説で触れられています。

応用情報技術者試験の頻出用語/テクノロジ系

別名:correlated subquery

この語が出る過去問を解く →

背景

グループごとの最大値を求めるだけならGROUP BYと集約関数で足りる。しかし「その最大値を持つ行の氏名や入社日まで欲しい」となると、集約した結果には元の行の他の列が残っていないため書けない。相関副問合せは、行を1件ずつ見ながらその行が属するグループを基準に判定するという、集約とは逆向きの発想で同じ要求を満たす。

具体例

各部門で最高給与の社員を出すなら、社員表をS1として、WHERE 給与 =(SELECT MAX(給与) FROM 社員 S2 WHERE S2.部門コード = S1.部門コード)と書く。内側のWHERE句に外側の別名S1が現れている点が相関であり、ここを定数に置き換えると全社の最高給与になって意味が変わる。

試験での引っ掛け

非相関副問合せとの判別点は「内側に外側の別名が現れるか」の一点で、現れなければ内側は1回だけ評価される。もう一つはNOT INとNOT EXISTSの違いで、副問合せの結果にNULLが1件でも混じるとNOT INは1行も返さないのに対し、NOT EXISTSは意図どおり動く。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 1問の解説で触れられる
  • 分野:テクノロジ系
  • 非相関副問合せとの判別点は「内側に外側の別名が現れるか」の一点で、現れなければ内側は1回だけ評価される。