Bonjour,
Je bloque sur une requête qui au premier abord me paraissait plus simple qu'elle n'y paraît... ou alors je m'y prends mal !?
En clair, j'ai une table fiche dont je veux supprimer les "semi"-doublons, c'est-à-dire qui ont les champs nom et prenom identiques.
Par exemple si j'ai :
id - ... - nom - prenom - ...
32 - ... - DUPONT - Gérard - ...
38 - ... - DUPONT - Gérard - ...
51 - ... - DUPONT - Gérard - ...
Je veux en garder une seule des trois.
J'écris donc la reqûete :
Comme vous pouvez le remarquez, je suis obligé d'aliaser la table fiche dans le DELETE et le SELECT pour éviter les ambigüités.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 DELETE FROM fiche T1 WHERE T1.id < ANY (SELECT T2.id FROM fiche T2 WHERE T2.id!=T1.id AND T2.nom =T1.nom AND T2.prenom = T1.prenom)
Or j'obtiens une erreur ("#1064 - Erreur de syntaxe près de 'WHERE T1.id < ANY (SELECT T2.id FROM fiche T2 WHERE T2.id!=T1.id' à la ligne 1") car cela est apparemment impossible avec un DELETE !?
Je ne suis pas un crack sur MySQL donc si quelqu'un pouvait m'expliquer la source du problème et comment le résoudre, ce serait sympa.
Ma version de MySQL : 5.0.22
Partager