Намерихте вашите дублирани записи, но се интересувате да получите цялата информация, прикачена към тях. Трябва да се join
вашите дубликати към основната ви таблица, за да получите тази информация.
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
Това е същото като inner join
и означава, че за всеки запис във вашата подзаявка, който е намерил дублиращите се записи, ще намерите всичко от основната си таблица, което има същата комбинация firstseen и lastseen.
Можете също да направите това с in, въпреки че трябва да тествате разликата :
select *
from my_table a
where ( firstname, lastname ) in
( select firstname, lastname
from my_table
group by firstname, lastname
having count(*) > 1 )
Допълнителна литература:
- Визуално представяне на се присъединява от Coding Horror
- Обяснение за присъединяване от Уикипедия