Bonjour à tous,
J'ai fait une jolie requête qui m'a pris pas mal de temps...lol
Manque de pot, ça veut pas pas marcher...
ERROR 1093 (HY000): You can't specify target table 'especes' for update in FROM clause
qu'il me dit...
Donc j'ai 2 tables, table1 et table2.
table1 je l'ai recréé en copie_table1 pour pouvoir tester mes requêtes.
Jusque là pas de probleme.
Dans mes 2 tables , copie_table1 et table2 j'ai le même id sous 2 noms differents.
id1 dans copie_table1 et id1bis dans table2
Mais dans copie_table1 j'ai 60 000 id1 et dans table2 j'en ai 40 000 id1bis.
Tous les id1bis figurent dans copie_table1 (id1bis = id1)
Donc j'en ai 20 000 dans copie_table1 qui ne figurent pas dans table2.
Ceux là , je veux les effacer de copie_table1
J'ai fait :
La Sous requête marche bien. J'ai bien mes 20 000 entrées mais la requête globale est fausse car je ne peux pas faire DELETE ou UPDATE de copie_table1 si je l'utilise dans la sous-requete...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DELETE FROM copie_table1 WHERE (SELECT id1 FROM copie_table1 LEFT JOIN table2 ON copie_table1.id1 = table2.id1bis WHERE id1bis IS NULL);
Comme ce sont les memes colonnes et les memes champs j'ai remplacé copie_table1 par table1 dans la sous requête mais ça ne marche pas non plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ERROR 1093 (HY000): You can't specify target table 'especes' for update in FROM clause
Je l'ai tourné ds tous les sens, je ne parviens pas à contourner la difficulté...
Si qqn avait la soluce... ça me rendrait vraiment service...
Merci beaucoup par avance.
Partager