1

我正在尝试在左连接中使用 SQL 别名。在连接中使用别名时,我收到错误“on 子句中的未知 a_alias 列”有人能指出我正确的方向吗?

SELECT a as a_alias FROM table_a LEFT JOIN table_b ON a_alias = b

干杯

4

3 回答 3

1

您不能在 where 或 join 中使用别名,因为它尚未被评估。它们仅在聚合和分组/排序/具有子句 IIRC 中可用。

于 2012-06-11T14:41:13.357 回答
0

您可以使用的唯一别名ON是任何表别名;该SELECT子句在语法中位于首位,但(通常)是最后一个处理步骤;您在条款中要求的投影SELECT尚不可用。您不能在SELECT子句中使用ON子句中定义的列别名——您需要指定完整的列名。

于 2012-06-11T14:41:28.053 回答
0

如果要在查询中使用别名,可以执行以下操作:

SELECT *
FROM 
(
    SELECT a as a_alias
    FROM table_a
) ta
LEFT JOIN table_b 
    ON ta.a_alias = b

您可以将您SELECT ... FROM的括号括起来,然后在您的JOIN.

于 2012-06-11T14:49:53.050 回答