Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi MySQL génère-t-il l'erreur « Table spécifiée deux fois » lors de la mise à jour d'une table à l'aide d'une sous-requête ?

Susan Sarandon
Libérer: 2024-11-15 02:40:02
original
468 Les gens l'ont consulté

Why Does MySQL Throw

Erreur MySQL : table spécifiée deux fois dans UPDATE et Source

Lors de la tentative de mise à jour de la table du gestionnaire à l'aide de la requête SQL fournie, MySQL rencontre un erreur : "La table 'm1' est spécifiée deux fois, à la fois comme cible pour 'UPDATE' et comme source distincte de données." Cette erreur se produit car le gestionnaire de tables est référencé deux fois dans la sous-requête.

Le problème peut être résolu en modifiant la sous-requête pour effectuer une sélection à partir d'une table dérivée. Au lieu d'utiliser directement l'alias m2, la requête doit créer une table temporaire à l'aide de l'instruction SELECT, puis effectuer une sélection dans cette table temporaire. La requête modifiée ci-dessous permet d'atteindre cet objectif :

UPDATE manager
SET status = 'Y'
WHERE branch_id IN
(
  SELECT branch_id
  FROM (SELECT * FROM manager) AS m2
  WHERE (branch_id, year) IN
  (
    SELECT branch_id, year
    FROM branch_master
    WHERE type = 'finance'
  )
);
Copier après la connexion

En utilisant une table dérivée, MySQL peut correctement différencier la table gestionnaire utilisée dans l'instruction UPDATE et la table gestionnaire référencée dans la sous-requête. Cela élimine la confusion qui a conduit au message d'erreur.

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