首页 > 解决方案 > 搜索 mysql 限制以引用超过 2 个级别的顶级查询的解决方法

问题描述

对于以下预期的 mysql/mariadb 查询:

SELECT * FROM aktfv f
LEFT JOIN
(SELECT * FROM (
       SELECT * FROM labor1a WHERE pat_id = f.pat_id
 UNION SELECT * FROM labor2a WHERE pat_id = f.pat_id) i
) i ON i.pat_id = f.pat_id;

我收到错误 1054:“where 子句”中的未知列“f.pat_id”,
显然是因为限制只能引用超过 1 级的外部表参数。
我想应用'where'子句,否则'union select'需要很长时间。
任何人都可以给我一个解决方法的提示吗?

标签: mysqljoinreferencecorrelated-subquery

解决方案


SELECT  f.* ,l.* FROM aktfv f join labor1a l on  l.pat_id = f.pat_id
 UNION 
SELECT  f.* ,l.* FROM aktfv f join labor2a l on l.pat_id = f.pat_id

还是我错过了什么?


推荐阅读