Maison >base de données >tutoriel mysql >Comment mettre à jour une table dans une instruction MySQL Multi-Join lorsqu'il ne s'agit pas de la première table ?

Comment mettre à jour une table dans une instruction MySQL Multi-Join lorsqu'il ne s'agit pas de la première table ?

DDD
DDDoriginal
2024-12-11 07:38:11511parcourir

How to Update a Table in a MySQL Multi-Join Statement When It's Not the First Table?

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

La mise à jour d'une table jointe dans MySQL peut être difficile lorsque la table que vous souhaitez la mise à jour n'est pas la première de la chaîne de jointure. Cet article explique comment surmonter cet obstacle en utilisant la syntaxe UPDATE non conventionnelle de MySQL.

Syntaxe non conventionnelle pour la mise à jour multi-tables

Contrairement à la syntaxe de Microsoft SQL Server, la mise à jour de MySQL avec JOIN L'instruction ne nécessite pas de spécifier la table à mettre à jour dans la clause FROM. Au lieu de cela, il utilise implicitement la table spécifiée dans la clause SET.

Exemple

L'exemple fourni tente de mettre à jour la tableB en fonction des valeurs des tablesA et tableC :

UPDATE tableB
FROM tableA
JOIN tableB ON a.a_id = b.a_id
JOIN tableC ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
AND c.val > 10;

Points clés

  • La clause SET précise tableB comme table à mettre à jour.
  • La clause FROM est omise car elle n'est pas requise dans la syntaxe de mise à jour multi-jointure de MySQL.
  • Standard SQL ne prend pas en charge UPDATE avec JOIN et MySQL et Microsoft SQL Server ont implémenté leurs propres extensions à la syntaxe standard.

En adhérant à la syntaxe unique de MySQL, les utilisateurs peuvent mettre à jour avec succès les fichiers joints. tables même lorsque la table cible n'est pas la première de la chaîne de jointure.

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:
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