Problème avec les requêtes de mise à jour imbriquées
Question
Je ne peux pas faire fonctionner une requête de mise à jour. Dans une première étape, celui suivant fonctionne correctement:
UPDATE Tab1
SET Tab1.a = '3'
WHERE
Tab1.id IN ( 123, 456 );
où l'ID est la clé principale de TAB1.
Cependant, lorsque j'ajoute une sélection pour obtenir l'ensemble de valeurs tab1.id doit être dans, j'obtiens l'erreur MySQL suivante:
Code d'erreur: 1093
Vous ne pouvez pas spécifier la table cible 'tab1' pour la mise à jour de la clause.
Ceci est la requête complète:
UPDATE Tab1
SET Tab1.a = '3'
WHERE
Tab1.id IN (
SELECT Tab1.id
FROM Tab1, Tab2
WHERE Tab1.b = Tab2.b AND Tab1.c = '4'
);
Je ne vois pas comment corriger cette erreur.
Suis-je obligé de diviser cette requête en deux?
Merci!
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange