UPDATE basé sur si la valeur existe dans une autre table

j'ai deux tables

Tableau A

Number 111 222 333 444 

Tableau B

 Number Another 111 AAA 222 BBB 666 CCC 777 DDD 

Ce que je voudrais faire, c'est appliquer une instruction UPDATE à la condition que la valeur "Number" de la table B existe dans le tableau A. Donc la table finirait par ressembler à ceci.

 Number Another 111 ZZZ 222 ZZZ 666 CCC 777 DDD 

Je sais que je dois utiliser une requête UPDATE et probablement une sorte de JOIN, mais je ne suis pas sûr de la syntaxe.

Toute aide grandement appréciée.

Oui. Vous devez mettre à jour en utilisant une jointure comme ceci:

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

Vous pouvez utiliser exists aussi.

Question

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

Vous pouvez utiliser directement SELECT FROM table1 et mettre à jour dans table2:

 UPDATE table2 SET Another = 'ZZZ' FROM table1 t1 WHERE t1.Number = table2.Number