812 votes

Requête de mise à jour SQL à l’aide de jointures

Je dois mettre à jour un champ avec une valeur qui est retournée par une jointure des tables de 3.

Exemple :

Je veux mettre à jour la champ valeurs de table avec une autre valeur qui est joint à la condition ci-dessus.

Comment puis-je faire cela dans MS SQL Server ?

1462voto

gbn Points 197263

Edit : changé en ANSI jointures

Edit, Nov 2011

Faire savoir... La clause UPDATE peut faire référence à un alias de la table spécifié dans la clause FROM. Alors `` dans ce cas est valable

Edit, août 2012

Exemple générique

96voto

gcbenison Points 4253

Cette adaptation à MySQL--il y a aucun clause dans , mais cela fonctionne :

75voto

Remus Rusanu Points 159382

Un de la façon la plus simple consiste à utiliser une expression de table commune (puisque vous êtes déjà sur SQL 2005) :

Le moteur d’exécution de requête se chiffre à sa propre façon de mettre à jour l’enregistrement.

15voto

Gratzy Points 4829

N’avez pas utilisé votre sql ci-dessus mais voici un exemple de mise à jour une table basée sur une instruction de jointure.

Update p.category set p = c.category
de produits p
jointure interne prodductcatagories pg sur p.productid = pg.productid
jointure interne catégories c sur pg.categoryid = c.cateogryid
où c.categories like « % ensemble »

9voto

marc_s Points 321990

Vous pouvez spécifier des tables supplémentaires utilisées pour déterminer comment et ce qu’il faut mettre à jour avec la clause « FROM » dans l’instruction UPDATE, comme ceci :

Dans la clause WHERE, vous devez fournir les conditions et rejoignez les opérations pour lier ces tableaux ensemble.

Marc

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X