Du bör kunna göra en korrelerad underfråga för att radera data. Hitta alla rader som är dubbletter och ta bort alla utom den med minsta id. För MYSQL måste en inre koppling (funktionell motsvarighet till EXISTS) användas, som så:
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)
För att testa, ersätt delete games from games
med select * from games
. Kör inte bara en radering på din DB :-)