Maison > base de données > tutoriel mysql > Comment mettre à jour une table dans une instruction MySQL Multi-Join ?

Comment mettre à jour une table dans une instruction MySQL Multi-Join ?

Barbara Streisand
Libérer: 2024-11-24 11:12:11
original
929 Les gens l'ont consulté

How to Update a Table in a MySQL Multi-Join Statement?

Mettre à jour une table MySQL dans une instruction multi-jointure

Lorsque vous traitez plusieurs jointures dans MySQL, comprendre les différentes syntaxes de mise à jour d'une jointure le tableau est crucial. Contrairement à SQL Server, MySQL utilise une approche distincte.

Problème :

Effectuer une opération de mise à jour sur une table impliquée dans une série de jointures peut s'avérer difficile lorsque la valeur souhaitée la table n'est pas la première dans l'ordre de jointure.

Exemple Requête :

Considérons une requête hypothétique :

UPDATE b
FROM tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;
Copier après la connexion

Solution :

Dans MySQL, la syntaxe UPDATE avec JOIN fonctionne différemment . La table à mettre à jour n'est pas explicitement spécifiée dans la déclaration ; au lieu de cela, il est déduit de la clause SET. Par conséquent, la requête correcte serait :

UPDATE tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;
Copier après la connexion

Points clés :

  1. La syntaxe UPDATE de MySQL avec JOIN ne nécessite pas de clause FROM.
  2. La table à mettre à jour est spécifiée dans la clause SET.
  3. Cette syntaxe non standard est spécifique à MySQL extension.

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!

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