要获取更多关于集合子查询的信息,请参阅 集合子查询。要获取更多关于 FOR UPDATE 子句的信息,请参阅 FOR UPDATE 子句。
SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 UNION SELECT b FROM t3 WHERE t3.c IN (SELECT t4.x FROM t4 WHERE t4.4 = t2.z));
在此,不可解析最内部的子查询 t2.z,因为 z 发生在表引用 t2 的引用范围之外。在最内部的子查询中,仅可解析属于 t4、t3 或 t1 的列引用。表引用的范围向下扩展通过子查询,但不穿过 UNION 运算符到兄弟的 SELECT 语句。