搜索解决方法 mysql 限制引用超过 2 个级别的顶级查询
Searching workaround for mysql limitation to reference top level query over 2 levels
对于以下预期的 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 clause'、
中的未知列 'f.pat_id'
显然是因为只能在 1 级以上引用外部 table 参数的限制。
我想应用 'where' 子句,否则 'union select' 会花费很长时间。
谁能给我一个解决方法的提示?
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
还是我遗漏了什么?
对于以下预期的 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 clause'、
中的未知列 'f.pat_id'
显然是因为只能在 1 级以上引用外部 table 参数的限制。
我想应用 'where' 子句,否则 'union select' 会花费很长时间。
谁能给我一个解决方法的提示?
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
还是我遗漏了什么?