Reference Guide > TDV SQL Support > Subqueries in TDV > Correlated Subqueries
 
Correlated Subqueries
A correlated subquery is a subquery that contains a reference to a table that also appears in the outer query.
Syntax
SELECT outer_column
FROM outer_table
WHERE outer_column_value IN
(SELECT inner_column FROM inner_table
WHERE inner_column = outer_column)
Remarks
In the syntax above, outer_column is called the correlation variable, because it references the outer query from the inner query.
A correlated subquery is used if a statement needs to process a table in the inner query for each row in the outer query.
A correlated subquery cannot be evaluated independent of its outer query. The inner query is dependent on the data from the outer query.
Correlated subqueries differ from simple queries because of their order of execution and the number of times they are executed. A correlated subquery is executed repeatedly, once for each candidate row selected by the outer query. It always refers to the table mentioned in the FROM clause of the outer query.
Example
The query lists the managers who are over 40 and who manage a sales person who is over quota and who does not work in the same sales office as the manager.
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)