リファレンスガイド> TDV SQLサポート> TDVのサブクエリ> 相関サブクエリ
 
相関サブクエリ
相関サブクエリは、外部クエリにも表示されるテーブルへの参照を含むサブクエリです。
構文
SELECT outer_column
FROM outer_table
WHERE outer_column_value IN
(SELECT inner_column FROM inner_table
WHERE inner_column = outer_column)
備考
上記の構文では、outer_columnは、内部クエリから外部クエリを参照するため、相関変数と呼ばれます。
ステートメントが外部クエリの各行の内部クエリのテーブルを処理する必要がある場合は、相関サブクエリが使用されます。
相関サブクエリは、その外部クエリとは独立して評価することはできません。内部クエリは、外部クエリのデータに依存しています。
関連するサブクエリは、実行順序と実行回数が異なるため、単純なクエリとは異なります。相関サブクエリは、外部クエリによって選択された候補行ごとに1回ずつ、繰り返し実行されます。これは常に、外部クエリのFROM句で言及されているテーブルを参照します。
クエリには、40歳を超え、割り当てを超え、マネージャーと同じ営業所で働いていない営業担当者を管理しているマネージャーが一覧表示されます。
SELECT name
FROM salesreps mgrs
WHERE age > 40 AND mgrs.EMP_NO IN
(SELECT manager
FROM salesreps emps
WHERE emps.quota > emps.sales
AND emps.rep_office <> mgrs.rep_office)