Select * from a
inner join b
on a.1=b.2
update table a
set a.2=b.3
from a
inner join b
on a.1=b.2
我正在尝试在SQL中更新表中的列。
最初我使用需要更新行的连接从列中选择数据(计数将为40000)。然后我运行update语句以使用新值更新列(更新计数2000)。来自连接的计数总是超过更新计数。
当我返回并执行连接时,我将计为零。
我无法理解为什么我会有所不同。有人可以帮忙吗?
由于
答案 0 :(得分:0)
正如评论中所述,问题是b
中的多个值与a
中的一个或多个值匹配。
如果您想要相同的计数,请尝试运行以下查询:
Select count(*)
from a
where exists (select 1 from b where a.1 = b.2);
然后:
update table a
set a.2 = b.3
where exists (select 1 from b where a.1 = b.2);
如果查询之间的表没有变化,那么它们应该报告相同的行数。