Задавайте вопросы, мы ответим
Вы не зашли.
есть несколько таблиц, таблицы связанные между собой, одно из таблиц есть дубликаты
скрипт выводит на экран дубликаты (print), надо места вывода дубликатов удалить (drop), помогите переделать скрипт
Неактивен
Что вы подразумеваете под удалением дубликатов?
Например, есть 3 одинаковых строки. Нужно удалить все 3 или одну оставить? Если оставить, то какую?
Неактивен
внутри таблицы есть колонки:
id
fourth_en_US
fourth_ru_RU
fourth_fr_FR
hf0tv_country_country_id
hf0tv_fifth_fifth_id
hf0tv_first_first_id
база городов и стран, кроме id колонки fourth_en_US, fourth_ru_RU, fourth_fr_FR та же информация но на разных языках, но в таблице есть колонки которые связывает к другим таблицам ключ
есть дубликаты строки которые совпадают, но id мешает удалить дубликаты строки, поэтому используется JOIN
выше указаны скрипт выводит дубликаты, надо места вывода удалить дубликаты строки
Неактивен
Вы не ответили на мой вопрос, а ваш ответ не внес ясности.
Если вы хотите удалить строки, выводимые запросом выше, то замените
select hf0tv_fourth.* from hf0tv_fourth
на
delete hf0tv_fourth from hf0tv_fourth
http://dev.mysql.com/doc/refman/5.5/en/delete.html
P.S. вы пишите на русском или пользуетесь онлайн переводчиком?
Неактивен
vasya написал:
Что вы подразумеваете под удалением дубликатов?
Например, есть 3 одинаковых строки. Нужно удалить все 3 или одну оставить? Если оставить, то какую?
из трех одинаковых удалить 2, не важно какую оставить
вы правильно заметили, я плохо разговариваю на русском
select hf0tv_fourth.* from hf0tv_fourth
на
delete hf0tv_fourth from hf0tv_fourth
выдает ошибку "1064 - You have an error in your SQL syntax"
Неактивен
Вместо
delete hf0tv_fourth from hf0tv_fourth
попробуйте
delete from hf0tv_fourth
Try
delete from hf0tv_fourth
instead
delete hf0tv_fourth from hf0tv_fourth
Неактивен
Если я правильно понимаю:
-) id уникальный идентификатор для каждой строки
-) дубликаты это строки у которых совпадают значения полей fourth_en_US, hf0tv_country_country_id, hf0tv_fifth_fifth_id, hf0tv_first_first_id
-) из каждой группы дубликатов нужно оставить одну одну произвольную строку.
Тогда
Неактивен
deadka написал:
Вместо
delete hf0tv_fourth from hf0tv_fourth
попробуйте
delete from hf0tv_fourth
Try
delete from hf0tv_fourth
instead
delete hf0tv_fourth from hf0tv_fourth
Не, не нужно. Мой прежний совет удалил бы все строки, не оставив по одной из каждой группы дубликатов. Хорошо, что он не прошел. Видимо карма у человека хорошая.
Неактивен
vasya написал:
deadka написал:
Вместо
delete hf0tv_fourth from hf0tv_fourth
попробуйте
delete from hf0tv_fourth
Try
delete from hf0tv_fourth
instead
delete hf0tv_fourth from hf0tv_fourthНе, не нужно. Мой прежний совет удалил бы все строки, не оставив по одной из каждой группы дубликатов. Хорошо, что он не прошел. Видимо карма у человека хорошая.
не переживайте я всегда делаю backup
Неактивен
vasya написал:
Если я правильно понимаю:
-) id уникальный идентификатор для каждой строки
-) дубликаты это строки у которых совпадают значения полей fourth_en_US, hf0tv_country_country_id, hf0tv_fifth_fifth_id, hf0tv_first_first_id
-) из каждой группы дубликатов нужно оставить одну одну произвольную строку.
Тогдаdelete hf0tv_fourth from hf0tv_fourth left join
(select id from hf0tv_fourth
group by fourth_en_US, hf0tv_country_country_id, hf0tv_fifth_fifth_id, hf0tv_first_first_id) t
on hf0tv_fourth.id=t.id where t.id is null;
P.S. Для проверки выполните delete на копии таблицы.
P.P.S. Если будет ошибка синтаксиса, то пишите её полный текст.
огромное спасибо, все получилось ))))
Неактивен