使用UPDATE查询时无法绑定多部分标识符

时间:2012-01-11 23:01:01

标签: sql sql-server-2008

如果表B_A中的电子邮件地址不同,我正在尝试将表格A中的电子邮件地址更新为表格B_A

我正在尝试的查询是:

A

我的错误是: UPDATE A SET Email = ( select [Email Address] from [B_A] where A.Email <> [B_A].[Email_Address]) where A.ID = [B_A].[ID]

如何规范化此查询以运行?

1 个答案:

答案 0 :(得分:0)

您的问题看起来好像是在外部查询中引用内部查询中的表。外部语句不知道B_A表,因为您只在内部表上定义。

您可以尝试这样的事情:

UPDATE A
JOIN B_A on A.id = B_A.id
SET A.email = B_A.email
WHERE A.email <> B_A.email

不确定SQL Server中是否有UPDATE JOIN可用,但该语法适用于其他dbs。