Mise à jour MySQL Rejoignez pour la mise à jour de la table croisée

Mise à jour MySQL Rejoignez pour la mise à jour de la table croisée

Dans les dernières versions de MySQL, vous pouvez effectuer une mise à jour croisée, également connue sous le nom de mise à jour de la table de corrélation où vous pouvez rejoindre deux ou plusieurs tables. À l'aide de MySQL JOIN (Inner et à gauche) et à mettre à jour la requête, nous pouvons effectuer une mise à jour croisée en étapes très simples.

Ce tutoriel vous guidera dans la façon d'effectuer des mises à jour de table croisée MySQL à l'aide de commandes MySQL natives.

Syntaxe de base

La syntaxe générale pour une requête de jointure de mise à jour MySQL de base est:

Mettre à jour DB.Tableau 1, DB.Tableau 2,
[Join de gauche | Jointure intérieure] db.Tableau 1 sur DB.Tableau 1.colonne1 = db.Tableau 2.colonne2
Définir DB.Tableau 1.Colum2 = db.Tableau 2.colonne2, db.Tableau 2.colonne3 = expression
Où [condition]

Laissons décomposer la requête ci-dessus en parties plus petites afin que nous puissions mieux le comprendre.

Nous commençons par définir le tableau principal. Dans ce cas, (db.Tableau 1) suivi du tableau que nous voulons rejoindre en utilisant l'instruction de mise à jour, dans ce cas, DB.Tableau 2.

NOTE: Il est important de spécifier au moins une table après l'instruction de mise à jour; Sinon, les lignes du tableau ne mettront pas à jour après la requête.

Dans la deuxième partie de la requête, nous spécifions le type spécifique de jointure que nous voulons effectuer, je.e., Jointure intérieure ou gauche et un prédicat de jointure. Définissez toujours la requête de jointure immédiatement après la requête de mise à jour.

Un prédicat de jointure est une condition de jointure spécifique qui évalue à une valeur booléenne.

Dans la partie suivante, nous définissons de nouvelles valeurs sur les colonnes de DB.Tableau 1 et DB.Tableau 2.

Enfin, nous définissons une condition en utilisant la clause Where, qui aide à limiter les lignes qui subissent la mise à jour.

Exemple de cas d'utilisation

Supposons que vous ayez deux tables, appelées TB1 et TB2; Considérez une requête ci-dessous pour créer des tables et ajouter des données.

Créer une base de données s'il n'est pas existant Sample_DB;
Utilisez Sample_DB;
Créer la table TB1 (
COL1 INT (11) Pas nul,
col2 int not null,
Clé primaire (COL1)
));
Créer la table TB2 (
col1 int not null auto_increment,
COL2 VARCHAR (100) pas nul,
Col3 int défaut null,
col4 int null par défaut,
Clé primaire (COL1)
));
Insérer dans les valeurs TB1 (Col1, Col2) (1,0), (2,1), (3,3), (4,4), (5,5);
Insérer dans TB2 (COL2, COL3, COL4) VALEURS ("First", 1, 500), ("Second", 2, 1000), ("Third", 3, 1500), ("Quatrième", 4, 2000) , ("Cinquième", 5, 2500);

Dans les tableaux créés à l'aide de la requête ci-dessus, nous pouvons effectuer une requête de mise à jour à l'aide de l'instruction INTER JOIN car les tables sont liées sur COL2.

Considérez la requête ci-dessous:

Utilisez Sample_DB;
Mettre à jour TB2 Inner Join TB1 sur TB2.COL3 = TB1.COL1 SET COL3 = COL4 + COL4 * 5;

Puisque nous voulons mettre à jour les données dans le deuxième tableau (COL3) où nous obtenons les valeurs des colonnes et multiplions par 5, dans l'exemple ci-dessus, nous supprimons la condition où nous voulons mettre à jour tous les enregistrements dans le tableau spécifié.

Vous pouvez confirmer cela à l'aide de la requête SELECT comme indiqué ci-dessous:

Sélectionner * dans Sample_DB.TB2;

La sortie comme indiqué ci-dessous:

mysql> Sélectionner * dans Sample_DB.TB2;
+------+--------+-------+------+
| COL1 | COL2 | COL3 | COL4 |
+------+--------+-------+------+
| 1 | Premièrement | 3000 | 500 |
| 2 | Deuxième | 6000 | 1000 |
| 3 | Troisième | 9000 | 1500 |
| 4 | Quatrième | 12000 | 2000 |
| 5 | Cinquième | 15000 | 2500 |
+------+--------+-------+------+
5 lignes en jeu (0.00 sec)

Conclusion

Dans ce tutoriel rapide, nous avons discuté de la façon d'utiliser la requête de jointure de mise à jour MySQL qui vous permet de combiner des tables et de mettre à jour les valeurs en conséquence.

Pour en savoir plus sur la façon dont vous pouvez étendre cette fonctionnalité, considérez les ressources fournies ci-dessous:

https: // dev.mysql.com / doc / Refman / 8.0 / en / mise à jour.html

https: // dev.mysql.com / doc / Refman / 8.0 / en / join.html