If you modify the attachment point for a subquery, you must choose a point at which all of the correlation columns are available.This query is correlated to both of the tables in the outer query:
select * from t1, t2, t3 where c12 = 0 and c11 = c21 and c22 = c32 and 0 < (select c31 from t3 where c31 = t1.c11 and c32 = t2.c22)
This plan uses the join order t1, t2, t3, with the subquery nested over the t1-t2 join:
( g_join ( nested ( g_join ( i_scan i_c11_c12 t1 ) ( i_scan i_c22 t2 ) ) ( subq 1 ( t_scan ( table t3 ( in (subq 1 ) ) ) ) ) ) ( i_scan i_c32 t3 ) )
Since the subquery requires columns from both outer tables, it would be incorrect to nest it over the scan of t1 or the scan of t2; such errors are silently corrected during optimization.