嵌套 MySQL 查询列别名
Nested MySQL queries column aliases
这是一个有效的 MySQL 查询,您可以使用嵌套查询之外的列的别名吗? (series_id_a和series_id_b是函数输入,这个应该用在函数中)
select x1 as x1a, x2 as x2a, y1 as y1a, y2 as y2a FROM region WHERE series_id = series_id_a AND EXISTS(
SELECT x1 as x1b, x2 as x2b, y1 as y1b, y2 as y2b FROM region WHERE series_id = series_id_b AND x1b = x1a AND x2b = x2a AND y1a = y1b AND y2a = y2b
)
不,在 WHERE 子句的条件中引用分配给外部查询中的表达式的列别名是无效的。
为了清楚起见,为了未来读者的理智,为了这个世界上所有美好的事物...限定所有专栏引用。
作为我猜测您正在尝试实现的目标的示例:
SELECT r.x1 AS x1a
, r.x2 AS x2a
, r.y1 AS y1a
, r.y2 AS y2a
FROM region r
WHERE r.series_id = ? -- series_id_a parameter
AND EXISTS ( SELECT 1
FROM region q
WHERE q.series_id = ? -- series_id_b parameter
AND q.x1 = r.x1
AND q.x2 = r.x2
AND q.y1 = r.y1
AND q.y2 = r.y2
)
这是一个有效的 MySQL 查询,您可以使用嵌套查询之外的列的别名吗? (series_id_a和series_id_b是函数输入,这个应该用在函数中)
select x1 as x1a, x2 as x2a, y1 as y1a, y2 as y2a FROM region WHERE series_id = series_id_a AND EXISTS(
SELECT x1 as x1b, x2 as x2b, y1 as y1b, y2 as y2b FROM region WHERE series_id = series_id_b AND x1b = x1a AND x2b = x2a AND y1a = y1b AND y2a = y2b
)
不,在 WHERE 子句的条件中引用分配给外部查询中的表达式的列别名是无效的。
为了清楚起见,为了未来读者的理智,为了这个世界上所有美好的事物...限定所有专栏引用。
作为我猜测您正在尝试实现的目标的示例:
SELECT r.x1 AS x1a
, r.x2 AS x2a
, r.y1 AS y1a
, r.y2 AS y2a
FROM region r
WHERE r.series_id = ? -- series_id_a parameter
AND EXISTS ( SELECT 1
FROM region q
WHERE q.series_id = ? -- series_id_b parameter
AND q.x1 = r.x1
AND q.x2 = r.x2
AND q.y1 = r.y1
AND q.y2 = r.y2
)