Avant de me faire jeter je précise que j'ai lu http://sql.developpez.com/doublons/ et que j'ai posté d'abord dans MySQL mais comme je n'ai eu aucune réponse j'essaye ici...
Je pars du tuto cité plus haut->
Je ne veux pas supprimer les doublons: les doublons viennent de 2 fichiers différents et chacun a un champ "candidature" qui a une donnée différente: la même personne a pu candidater 2 fois à 2 choses différentes
La détection de doublon se passe bien, je récupère tous les doublons
Maintenant je veux updater les doublons-> le champ candidature va prendre une nouvelle valeur (en fait formation1 et formation2, tout simplement)
Ensuite bien sûr je supprimer une ligne, mais comme je ne sais pas laquelle sera supprimée j'update les 2 lignes.
Puisque la requête
fonctionnait bien en me ramenant les deux lignes de doublons (j'ai pas bien compris comment vu que SELECT DISTINCT mais bon ça marche alors je prends ^^') , je voulais la réutiliser dans l'update.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT DISTINCT * FROM test TE1 WHERE EXISTS (SELECT * FROM test TE2 WHERE TE1.cand <> TE2.cand AND TE1.num_inscrit = TE2.num_inscrit) ORDER BY num_inscrit
Mais comment?
n'est pas correct évidemment mais en fait je ne vois pas comment donner mes conditions...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 UPDATE test SET cand = 'MRI et STI' WHERE (SELECT DISTINCT * FROM test TE1 WHERE EXISTS (SELECT * FROM test TE2 WHERE TE1.cand <> TE2.cand AND TE1.num_inscrit = TE2.num_inscrit
Ma condition en fait c'est TE1.num_inscrit = TE2.num_inscrit mais je ne vois pas comment continuer à parler de TE1 et TE2 alors que je n'utilise qu'une seule table pour updater...
J'ai mal à la tête.. :'(
Partager