Vous avez trouvé vos enregistrements en double, mais vous souhaitez obtenir toutes les informations qui s'y rattachent. Vous devez join
vos doublons à votre table principale pour obtenir ces informations.
select *
from my_table a
join ( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 ) b
on a.firstname = b.firstname
and a.lastname = b.lastname
C'est la même chose qu'une inner join
et signifie que pour chaque enregistrement de votre sous-requête, qui a trouvé les enregistrements en double, vous trouvez tout dans votre table principale qui a la même combinaison première et dernière vue.
Vous pouvez également le faire avec in, bien que vous devriez tester la différence :
select *
from my_table a
where ( firstname, lastname ) in
( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 )
Autres lectures :
- Une représentation visuelle de rejoint de Coding Horror
- Joindre l'explication de Wikipédia