在连接中使用别名

时间:2012-06-11 14:37:20

标签: mysql sql

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

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

干杯

3 个答案:

答案 0 :(得分:1)

您无法在where或join中使用别名,因为尚未对其进行评估。它们只能通过/具有条款IIRC来汇总和分组。

答案 1 :(得分:0)

您可以在ON中使用的唯一别名是任何表别名; SELECT子句在语法中是第一个,但是(通常)是 last 处理步骤;您在SELECT子句中要求的预测尚不可用。您不能使用SELECT子句中ON子句中定义的列别名 - 您需要指定完整的列名。

答案 2 :(得分:0)

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

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

您可以将SELECT ... FROM括在括号中,然后在JOIN中使用表格别名和列别名。