Anda harus dapat melakukan subquery yang berkorelasi untuk menghapus data. Temukan semua baris yang merupakan duplikat dan hapus semua kecuali yang memiliki id terkecil. Untuk MYSQL, gabungan dalam (fungsional setara dengan EXISTS) perlu digunakan, seperti:
delete games from games inner join
(select min(id) minid, date, time,
hometeam_id, awayteam_id, locationcity, locationstate
from games
group by date, time, hometeam_id,
awayteam_id, locationcity, locationstate
having count(1) > 1) as duplicates
on (duplicates.date = games.date
and duplicates.time = games.time
and duplicates.hometeam_id = games.hometeam_id
and duplicates.awayteam_id = games.awayteam_id
and duplicates.locationcity = games.locationcity
and duplicates.locationstate = games.locationstate
and duplicates.minid <> games.id)
Untuk menguji, ganti delete games from games
dengan select * from games
. Jangan hanya menjalankan penghapusan pada DB Anda :-)