我正在尝试在左连接中使用 SQL 别名。在连接中使用别名时,我收到错误“on 子句中的未知 a_alias 列”有人能指出我正确的方向吗?
SELECT a as a_alias FROM table_a LEFT JOIN table_b ON a_alias = b
干杯
您不能在 where 或 join 中使用别名,因为它尚未被评估。它们仅在聚合和分组/排序/具有子句 IIRC 中可用。
您可以使用的唯一别名ON
是任何表别名;该SELECT
子句在语法中位于首位,但(通常)是最后一个处理步骤;您在条款中要求的投影SELECT
尚不可用。您不能在SELECT
子句中使用ON
子句中定义的列别名——您需要指定完整的列名。
如果要在查询中使用别名,可以执行以下操作:
SELECT *
FROM
(
SELECT a as a_alias
FROM table_a
) ta
LEFT JOIN table_b
ON ta.a_alias = b
您可以将您SELECT ... FROM
的括号括起来,然后在您的JOIN
.