Identification des enregistrements en double sur plusieurs colonnes
Le défi posé est de répliquer la fonctionnalité du code SQL fourni, qui vise à identifier et récupérer dupliquez les enregistrements en fonction de la combinaison de deux colonnes, à savoir « nom » et « ville ». L'objectif est d'exclure les cas où une seule colonne, soit « nom » ou « ville », correspond et de ne prendre en compte que les enregistrements dont les deux colonnes sont identiques.
Pour répondre à cette exigence, la réponse fournie exploite une sous-requête pour compter les occurrences des combinaisons « nom » et « ville » dans la table « trucs ». Cette sous-requête compte les lignes regroupées par « nom » et « ville » et filtre les combinaisons dont le nombre est supérieur à 1, indiquant les doublons.
select name, city, count(*) as qty from [stuff] group by name, city having count(*) > 1
La requête principale rejoint ensuite la table « stuff » d'origine. avec les résultats de la sous-requête, correspondant à la fois à « nom » et à « ville ». Cette opération de jointure identifie efficacement les enregistrements en double qui répondent aux critères spécifiés. Le résultat final élimine les faux positifs en excluant les cas où une seule colonne correspond.
select s.id, t.* from [stuff] s join ( ... select name, city, count(*) as qty from [stuff] group by name, city having count(*) > 1 ) t on s.name = t.name and s.city = t.city
En conséquence, la requête récupère avec succès le résultat souhaité :
id name city 904834 jim London 904835 jim London 90145 Fred Paris 90132 Fred Paris 90133 Fred Paris
Cette approche fournit un et polyvalente pour identifier les enregistrements en double sur la base de plusieurs colonnes, garantissant l'exactitude et l'exhaustivité des résultats de la requête.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!