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
scroll top