更新基于值是否存在于另一个表中

新手上路,请多包涵

我有两张桌子

表 A

 Number
111
222
333
444

表 B

 Number    Another
111       AAA
222       BBB
666       CCC
777       DDD

我想要做的是应用 UPDATE 语句,条件是表 B 中的“数字”值是否存在于表 A 中。所以表最终看起来像这样。

 Number    Another
111       ZZZ
222       ZZZ
666       CCC
777       DDD

我知道我需要使用 UPDATE 查询,可能还需要某种 JOIN,但我不确定语法。

非常感谢任何帮助。

原文由 user3580480 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 538
2 个回答

是的。您需要使用这样的连接进行更新:

 update t2
set t2.Another = 'ZZZ'
from table1 t1
join table2 t2 on t1.Number = t2.Number

原文由 Gurwinder Singh 发布,翻译遵循 CC BY-SA 3.0 许可协议

您也可以使用 exists

询问

update t1
set t1.[Another] = 'ZZZ'
from [TableB] t1
where exists(
    select 1 from [TableA] t2
    where t1.[Number] = t2.[Number]
);

原文由 Ullas 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进