Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour plusieurs tables MySQL à l'aide d'un LEFT JOIN ?

Comment puis-je mettre à jour plusieurs tables MySQL à l'aide d'un LEFT JOIN ?

Barbara Streisand
Libérer: 2024-12-06 12:37:11
original
816 Les gens l'ont consulté

How Can I Update Multiple MySQL Tables Using a LEFT JOIN?

Mise à jour de plusieurs tables à l'aide de LEFT JOIN dans MySQL

MySQL permet aux utilisateurs d'effectuer des mises à jour multi-tables à l'aide de différents types de jointures, notamment LEFT JOIN . Cependant, la syntaxe de telles mises à jour peut être insaisissable.

Syntaxe de mise à jour de plusieurs tables avec LEFT JOIN

Pour mettre à jour plusieurs tables à l'aide de LEFT JOIN, la syntaxe suivante peut être employé :

UPDATE  t1
LEFT JOIN
        t2
ON      t2.id = t1.id
SET     t1.col1 = newvalue
WHERE   t2.id IS NULL
Copier après la connexion

Dans ce syntaxe :

  • t1 et t2 représentent les tables en cours de mise à jour.
  • La clause LEFT JOIN ​​établit une relation entre les tables en fonction de la condition (t2.id = t1.id dans ce exemple).
  • La clause SET précise les colonnes et leurs nouvelles valeurs à mettre à jour dans la table cible t1.
  • La La clause WHERE filtre les lignes de l'ensemble de résultats joint en fonction d'un critère. Dans ce cas, elle identifie les lignes de t1 qui n'existent pas dans t2 (t2.id EST NULL).

Considérations relatives aux performances

Il est important de noter que les mises à jour de LEFT JOIN sont moins efficaces que l'utilisation de Syntaxe NOT IN ​​pour sélectionner les données. Une meilleure approche pour identifier efficacement les commandes incomplètes, par exemple, consiste à utiliser la syntaxe suivante :

SELECT  t1.*
FROM    t1
WHERE   t1.id NOT IN
        (
        SELECT  id
        FROM    t2
        )
Copier après la connexion

Cependant, pour les instructions UPDATE, MySQL n'autorise pas l'utilisation de la table cible dans une sous-requête. Par conséquent, la syntaxe LEFT JOIN, moins efficace, doit être utilisée pour les mises à jour multi-tables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal