连接具有相同列名的2个表时出现模糊列错误

时间:2011-08-17 08:20:42

标签: sql tsql sql-server-2008

在我的表格中{ID,FID,姓名,年龄}
在我的表B {ID,Job}

当我使用

SELECT ID // I want to get the ID of table B //**error**//
FROM A TA JOIN B TB
ON TA.ID = TB.FID
ORDER BY TA.Name;

错误:不明确的列名ID

无论如何都可以这样做而无需重命名列名称? (最糟糕的情况)
谢谢

3 个答案:

答案 0 :(得分:6)

SELECT TB.ID
FROM A TA JOIN B TB
ON TA.ID = TB.FID
ORDER BY TA.Name;

使用全名(以点分隔的表名和列名)专门选择一列。

您的查询不符合您描述的表结构,我猜您将表A与表B交换。

答案 1 :(得分:5)

SELECT TB.ID  ...

您需要使用表别名将任何不明确的列添加前缀。

答案 2 :(得分:0)

您无需重命名任何内容。你只需要在SELECT子句中指定ambigous字段的来源,因为这两个字段(表)中都存在这样的字段