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
890 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!

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