Sql 根据另一个表中是否存在值进行更新
我有两张桌子 表ASql 根据另一个表中是否存在值进行更新,sql,sql-server,syntax,sql-update,case,Sql,Sql Server,Syntax,Sql Update,Case,我有两张桌子 表A Number 111 222 333 444 表B Number Another 111 AAA 222 BBB 666 CCC 777 DDD 我想做的是,应用一个UPDATE语句,条件是表B中的“Number”值是否存在于表A中 Number Another 111 ZZZ 222 ZZZ 666 CCC 777
Number
111
222
333
444
表B
Number Another
111 AAA
222 BBB
666 CCC
777 DDD
我想做的是,应用一个UPDATE语句,条件是表B中的“Number”值是否存在于表A中
Number Another
111 ZZZ
222 ZZZ
666 CCC
777 DDD
我知道我需要使用更新查询,可能还需要某种类型的连接,但我不确定语法
非常感谢您的帮助。是的。您需要使用如下连接进行更新:
update t2
set t2.Another = 'ZZZ'
from table1 t1
join table2 t2 on t1.Number = t2.Number
您可以使用直接从表1中选择并更新到表2中:
UPDATE table2 SET Another = 'ZZZ'
FROM table1 t1 WHERE t1.Number = table2.Number
您也可以使用
exists
查询
update t1
set t1.[Another] = 'ZZZ'
from [TableB] t1
where exists(
select 1 from [TableA] t2
where t1.[Number] = t2.[Number]
);
所有答案都很好,但这是最适合我的场景的方法。谢谢,我也有类似的情况。是否可以使用它,但在它的末尾有一个WHERE子句,以过滤掉我不想更新的t2条目?