У меня есть таблица, как этотУдаление дублей в MySQL
userid visitorid time
1 10 2009-12-23
1 18 2009-12-06
1 18 2009-12-14
1 18 2009-12-18
1705 1678 2010-01-24
1705 1699 2010-01-24
1705 1700 2010-01-24
1712 1 2010-01-25
1712 640 2010-01-24
1712 925 2010-01-25
1712 1600 2010-01-24
1712 1630 2010-01-25
1712 1630 2010-01-24
1713 1 2010-01-24
1713 1 2010-01-23
Я хотел бы выполнить запрос таким образом, что она удаляет все дубликаты для последней, кроме одного. Надеюсь, у вас есть идея?
Пример, после запроса таблица должна быть, как это
userid visitorid time
1 10 2009-12-23
1 18 2009-12-18
1705 1678 2010-01-24
1705 1699 2010-01-24
1705 1700 2010-01-24
1712 1 2010-01-25
1712 640 2010-01-24
1712 925 2010-01-25
1712 1600 2010-01-24
1712 1630 2010-01-25
1713 1 2010-01-24
# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с «VersionA», где VersionA.Time NOT IN (выберите MAX (VersionB.Time) Time »в строке 1 –
, можно получить уникальные строки, пренебрегая полем времени затем удалите все остальные строки, кроме тех, и используйте максимальное поле времени? –
«В настоящее время вы не можете удалить из таблицы и выбрать из той же таблицы в подзапросе». http://dev.mysql.com/doc/refman/5.0 /en/delete.html - Это потому, что таблица не заблокирована правильно, и никто не реализовал код, чтобы заблокировать ее правильно. –