Encontró sus registros duplicados pero está interesado en obtener toda la información adjunta a ellos. Necesitas join
sus duplicados a su tabla principal para obtener esa información.
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
Esto es lo mismo que una inner join
y significa que para cada registro en su subconsulta, que encontró los registros duplicados, encontrará todo lo que tenga en su tabla principal que tenga la misma combinación visto por primera vez y visto por última vez.
También puede hacer esto con in, aunque debe probar la diferencia :
select *
from my_table a
where ( firstname, lastname ) in
( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 )
Lecturas adicionales:
- Una representación visual de se une de Codificación de terror
- Explicación de unión de Wikipedia