SQL doublons sur plusieurs champs a la fois
Yann
-
Yann -
Yann -
Bonjour,
Voici mon problème:
1 seule table avec des enregistrements du style:
Id Champ1 Champ2 Champ3 Champ4 Champ5...
Je souhaite afficher les doublons sur PLUSIEURS champs,
Je m'explique:
Je ne veut que les enregistrements qui ont en commun
le champ2 ET le champ3 ET le champ4
Merci de m'avoir lu et encore plus merci si vous avez la reponse :-)
A+ Yann
Voici mon problème:
1 seule table avec des enregistrements du style:
Id Champ1 Champ2 Champ3 Champ4 Champ5...
Je souhaite afficher les doublons sur PLUSIEURS champs,
Je m'explique:
Je ne veut que les enregistrements qui ont en commun
le champ2 ET le champ3 ET le champ4
Merci de m'avoir lu et encore plus merci si vous avez la reponse :-)
A+ Yann
A voir également:
- Sql doublon sur 2 champs
- Supercopier 2 - Télécharger - Gestion de fichiers
- Doublon photo - Guide
- Faire 2 colonnes sur word - Guide
- 2 ecran pc - Guide
- Word mettre à jour tous les champs ✓ - Forum Word
1 réponse
Bonjour,
Cette requête t'affichera tout les champs qui ont un doublon.
Si tu fais
En espérant que ça t'aide :)
SELECT t1.* FROM ma_table as t1 INNER JOIN ma_table as t2 ON t1.id != t2.id AND t1.champs1 = t2.champs1 AND t1.champs2 = t2.champs2 AND t1.champs3 = t2.champs3
Cette requête t'affichera tout les champs qui ont un doublon.
Si tu fais
SELECT t1.id as id1, t2.id as id2à la place du
SELECT t1.*tu auras les identifiants des 2 champs qui sont doublons.
En espérant que ça t'aide :)
Ta requête m'est bien utile, j'ai jamais bien pigé les jointure...
Sinon j'avais trouvé ca:
SELECT DISTINCT *
FROM GEST_releves T1
WHERE EXISTS (SELECT *
FROM GEST_releves T2
WHERE T1.'Id_enregistr' <> T2.'Id_enregistr'
AND T1.'Brut_credit_ope' = T2.'Brut_credit_ope'
AND T1.'Brut_debit_ope' = T2.'Brut_debit_ope'
AND T1.'Date_ope_reel' = T2.'Date_ope_reel'
)
Problème la requête mettait 4 secondes pour s'exécuter sur une table encore jeune (petite)
Ta requête met 1.8 secondes c'est mieux !
Je suis néanmoins surpris qu'on ne puisse pas se débrouiller avec un simple GROUP BY qui est exécuté beaucoup plus rapidement.
En tout cas merci pour ton aide,
A+
Yann.