协助 SQL 查询 - 无法绑定多部分标识符
Posted
技术标签:
【中文标题】协助 SQL 查询 - 无法绑定多部分标识符【英文标题】:Assistance on a SQL Query - The multi-part identifier could not be bound 【发布时间】:2009-05-15 02:56:08 【问题描述】:我正在尝试在同一个查询中进行子选择和内部联接,但收效甚微。
查询如下,并返回错误
多部分标识符 “Company.LocalityId”不能是 绑定。
UPDATE Company
SET
Company.BusinessRegionId = b.Id
FROM
(
SELECT
Id
FROM
BusinessRegion
WHERE
tag = 'Australia/New South Wales'
) b
INNER JOIN Locality l ON
Company.LocalityId = l.Id
where
l.StateOrProvinceAbbreviation = 'NSW'
我们将不胜感激。
【问题讨论】:
【参考方案1】:您的 BusinessRegion 和 Locality 表根本没有真正加入该查询,对吗?你可以这样做吗?
UPDATE Company
SET BusinessRegionId = (
SELECT TOP 1 Id
FROM BusinessRegion
WHERE Tag = 'Australia/New South Wales')
FROM Locality l
WHERE l.Id = LocalityId AND l.StateOrProvinceAbbreviation = 'NSW'
【讨论】:
谢谢,有道理,我有点太冗长了:)【参考方案2】:这是查询的变体:
UPDATE
c
SET
c.BusinessRegionId =
(
SELECT TOP 1
Id
FROM
BusinessRegion
WHERE
tag = 'Australia/New South Wales'
)
FROM
Company c
INNER JOIN Locality l ON c.LocalityId = l.Id
WHERE
l.StateOrProvinceAbbreviation = 'NSW'
【讨论】:
实际上我自己也选择了这个(更容易看到连接中发生了什么),但正是马特的建议让我越过了这条线以上是关于协助 SQL 查询 - 无法绑定多部分标识符的主要内容,如果未能解决你的问题,请参考以下文章