MySQL – Update avec jointure

Dans ce tutoriel nous allons découvrir comment exécuter la requête UPDATE avec une jointure, et comment utiliser les clauses INNER JOIN et LEFT JOIN avec l’instruction UPDATE.
 
Différence entre Inner Join et Outer JoinDifférence entre Inner Join et Outer JoinQuelle est la différence entre Inner Join et Outer Join ? – Les deux Inner Join et Outer Join peuvent être utilisées pour combiner des données…Lire plus  

Syntaxe de UPDATE JOIN
UPDATE table1, table2,
[INNER JOIN | LEFT JOIN] table1 ON table1.colonne1 = table2.colonne1
SET table1.colonne2 = table2.colonne2, 
    table2.colonne3 = expression
WHERE condition
  • Commencez par spécifier la table principale (table1) et la table à laquelle vous souhaitez que la table principale se joigne (table2).
  • Ensuite, spécifiez le type de jointure que vous souhaitez utiliser, à savoir INNER JOIN ou LEFT JOIN.
  • Ensuite, assignez des valeurs aux colonnes des tables que vous souhaitez mettre à jour.
  • Ensuite, spécifiez une condition dans la clause WHERE pour limiter les lignes à mettre à jour.

 
Il y a un autre moyen de mettre à jour les tables avec jointure à l’aide de la syntaxe suivante:

UPDATE table1, table2
SET table1.colonne2 = table2.colonne2,
      table2.colonne3 = expression
WHERE table1.colonne1 = table2.colonne1 AND condition
Liste des commandes MySQLListe des commandes MySQLDans ce tutoriel vous allez découvrir les différentes commandes MySQL qui devraient être utiles pour travailler avec des bases de données.   1. Pour vous…Lire plus  

Exemple:

Nous allons utiliser une simple base de données qui est constitué de deux tables:

  • La table des clients stocke les données sur les clients avec l’identifiant, le nom, l’age et l’adresse du client.
  • La table des commandes stocke les commandes effectués par des clients.

 


Table « Clients »
 

 
Table « Commandes »
 

 
Supposons que vous souhaitiez ajuster la note des commandes en fonction du numéro de commande, l’adresse et le nom du client.

Le lien entre la table « Clients » et la table « Commandes » est le champ « ClientID ». Voir la requête suivante:

UPDATE Commandes
INNER JOIN Clients 
ON Commandes.ClientID = Clients.ClientID 
SET Note = CONCAT( NumCommande, Nom, Adresse );


 
Comment fonctionne cette requête
 
Nous spécifions uniquement la table « Commandes » après la clause UPDATE car nous souhaitons mettre à jour que les données de la table « Commandes ».

Pour chaque ligne de la table « Commandes », la requête compare la valeur de la colonne « ClientID » à celle de la colonne « ClientID » de la table « Clients ». S’il trouve une correspondance, il récupère le nom et l’adresse depuis la table des clients, puis la concatène avec le numéro de commande et met à jour la colonne « Note » dans la table des commandes.

Comme nous négligeons la clause WHERE dans l’instruction UPDATE, tous les enregistrements de la table « Commandes » sont mis à jour.
Questions techniques sur MYSQLQuestions techniques sur MYSQL – Partie 1Nous avons divisé cette collection de questions techniques sur MYSQL sous sept chapitres là, c’est la premiere, puis vous trouverez la deuxième partie, la troisième…Lire plus

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *