Sie haben Ihre duplizierten Datensätze gefunden, möchten aber alle ihnen angehängten Informationen erhalten. Sie müssen join
Ihre Duplikate zu Ihrer Haupttabelle, um diese Informationen zu erhalten.
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
Dies ist dasselbe wie ein inner join
und bedeutet, dass Sie für jeden Datensatz in Ihrer Unterabfrage, der die doppelten Datensätze gefunden hat, alles aus Ihrer Haupttabelle finden, das dieselbe Firstseen- und Lastseen-Kombination aufweist.
Sie können dies auch mit in tun, obwohl Sie den Unterschied testen sollten :
select *
from my_table a
where ( firstname, lastname ) in
( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 )
Weiterführende Literatur:
- Eine visuelle Darstellung von tritt bei von Coding Horror
- Join-Erklärung aus Wikipedia