DELETE t1 FROM best_times t1 INNER JOIN ( SELECT MIN(id) as min_id, map_uid, player_login, best_time FROM best_times GROUP BY map_uid, player_login, best_time ) t2 ON t1.map_uid = t2.map_uid AND t1.player_login = t2.player_login AND t1.best_time = t2.best_time AND t1.id > t2.min_id;