【发布时间】:2021-05-28 13:35:44
【问题描述】:
错误信息:
消息 4104,第 16 级,状态 1,第 78 行
无法绑定多部分标识符“C1.Name”消息 4104,第 16 级,状态 1,第 78 行
无法绑定多部分标识符“C2.Name”
我认为这是因为 C1.Name 和 C2.Name 都没有与 Alias R 绑定?
SELECT
R.MapID AS MAPID, C1.Name AS IDFrom, C2.Name AS IDTo, R.Distance
FROM
(SELECT
R.MapID AS MAPID, C1.Name AS IDFrom, C2.Name AS IDTo, R.Distance,
FROM
ROAD R
INNER JOIN
CITY C1 ON C1.ID = R.IDfrom
INNER JOIN
CITY C2 ON C2.ID = R.IDto) R
如果我尝试在外部选择中使用 Select *,它实际上可以工作,但会添加我不想要的 seqnum 列
【问题讨论】:
-
在您的子查询之外,
C1和C2没有上下文;子查询别名为R,而不是C1,等等。 -
是的,在外部查询中为正确的对象
R设置别名。 -
并且不要重复使用相同的别名 - 只会增加混乱。
-
应该是
R.IDFrom和R.IDTo。您在内部子查询中命名了它们。 -
@marcos 就在钱上。非常感谢
标签: sql