2

我有一个拉回 50 行的查询(这是正确的):

select * from [Review Results], [Specialist Name Table]   
where [Authorizer Manager Name] = 5 
and [Specialist Name Table].[Penson Analyst] = TRUE
and [Review Results].[Authorizer Name] = [Specialist Name Table].[ID]

我正在尝试从上述内容中进行更新查询,但我似乎无法做到这一点。这是我正在使用的查询,但是它想要更新 461 行而不是 50 行:

update
[Review Results] e
INNER JOIN [Specialist Name Table] s ON  e.[Authorizer Name] = s.[ID]
set e.[Authorizer Manager Name] = 5
where s.[Penson Analyst] = TRUE  

任何人都可以帮忙吗?

4

1 回答 1

2

请注意,您的选择查询在 where 子句中有一个过滤器:

where [Authorizer Manager Name] = 5

这将返回集限制为“授权管理器名称”为 5 的行。在您的更新查询中,此过滤器不存在。相反,您的更新查询是说“当 Pension Analyst 字段为 TRUE 时,将 Authorizer Manager Name 设置为 5”。所以基本上,您的更新查询正在处理您的选择查询的超集。

简而言之,您的选择查询将返回 Pension Analyst 为 TRUE且 Authorizer Manager Name 已为 5的行,并且您的更新仅返回 Pension Analyst 为 TRUE 的行。

于 2012-09-05T14:00:05.963 回答