logo

MISE À JOUR SQL avec JOIN

REJOINDRE LA MISE À JOUR SQL signifie que nous mettrons à jour une table en utilisant une autre table et une autre condition de jointure.

Prenons un exemple de table client. J'ai mis à jour la table client qui contient les dernières informations client provenant d'un autre système source. Je souhaite mettre à jour la table des clients avec les dernières données. Dans ce cas, j'effectuerai une jointure entre la table cible et la table source en utilisant la jointure sur l'ID client.

Voyons le syntaxe de requête SQL UPDATE avec l'instruction JOIN.

 UPDATE customer_table INNER JOIN Customer_table ON customer_table.rel_cust_name = customer_table.cust_id SET customer_table.rel_cust_name = customer_table.cust_name 

Comment utiliser plusieurs tables dans l'instruction SQL UPDATE avec JOIN

Prenons deux tableaux, le tableau 1 et le tableau 2.

Créer une table1

 CREATE TABLE table1 (column1 INT, column2 INT, column3 VARCHAR (100)) INSERT INTO table1 (col1, col2, col3) SELECT 1, 11, 'FIRST' UNION ALL SELECT 11,12, 'SECOND' UNION ALL SELECT 21, 13, 'THIRD' UNION ALL SELECT 31, 14, 'FOURTH' 

Créer la table2

 CREATE TABLE table2 (column1 INT, column2 INT, column3 VARCHAR (100)) INSERT INTO table2 (col1, col2, col3) SELECT 1, 21, 'TWO-ONE' UNION ALL SELECT 11, 22, 'TWO-TWO' UNION ALL SELECT 21, 23, 'TWO-THREE' UNION ALL SELECT 31, 24, 'TWO-FOUR' 

Vérifiez maintenant le contenu du tableau.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
Col1Colonne 2Colonne 3
11onzeD'abord
2onze12Deuxième
3vingt-et-un 13 Troisième
431 14 Quatrième

Col1Colonne 2Colonne 3
11vingt-et-unDeux un
2onze22Deux-Deux
3vingt-et-un 23 Deux trois
431 24 Deux quatre

Notre exigence est que nous ayons le tableau 2 qui comporte deux lignes où la colonne 1 est 21 et 31. Nous souhaitons mettre à jour la valeur du tableau 2 vers le tableau 1 pour les lignes où la colonne 1 est 21 et 31.

Nous souhaitons également mettre à jour les valeurs de Col 2 et Col 3 uniquement.

Le moyen le plus simple et le plus courant consiste à utiliser la clause join dans l'instruction update et à utiliser plusieurs tables dans l'instruction update.

 UPDATE table 1 SET Col 2 = t2.Col2, Col 3 = t2.Col3 FROM table1 t1 INNER JOIN table 2 t2 ON t1.Col1 = t2.col1 WHERE t1.Col1 IN (21,31) 

Vérifiez le contenu du tableau

SÉLECTIONNER À PARTIR du tableau 1

SÉLECTIONNER À PARTIR du tableau 2

Col1Colonne 2Colonne 3
11onzeD'abord
2onze12Deuxième
3vingt-et-un 23 Deux trois
431 24 Deux quatre

Col1Colonne 2Colonne 3
11vingt-et-unD'abord
2onze22Deuxième
3vingt-et-un 23 Deux trois
431 24 Deux quatre

Ici, nous pouvons voir cela en utilisant la clause join dans l'instruction update. Nous avons fusionné deux tables à l'aide de la clause de jointure.