U zou een gecorreleerde subquery moeten kunnen uitvoeren om de gegevens te verwijderen. Vind alle rijen die duplicaten zijn en verwijder alle, behalve die met de kleinste id. Voor MYSQL moet een inner join (functioneel equivalent van EXISTS) worden gebruikt, zoals:
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)
Vervang om te testen delete games from games
met select * from games
. Voer niet alleen een verwijdering uit op uw DB :-)