Você encontrou seus registros duplicados, mas está interessado em obter todas as informações anexadas a eles. Você precisa
join
suas duplicatas para sua tabela principal para obter essas informações. 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
Isso é o mesmo que uma
inner join
e significa que para cada registro em sua subconsulta, que encontrou os registros duplicados, você encontra tudo da sua tabela principal que tem a mesma combinação de primeira vista e última vista. Você também pode fazer isso com embora você deva testar a diferença :
select *
from my_table a
where ( firstname, lastname ) in
( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 )
Leituras adicionais:
- Uma representação visual de junta de Codificar Horror
- Entrar na explicação da Wikipédia