Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

Удаление дубликатов в DBF   Найти похожие ветки 

 
Олег   (2008-06-26 07:25) [0]

Мастера, подскажите почему не работает этот запрос?

DELETE t1 FROM tab t1 , tab t2 WHERE t1.ID = t2.ID

Запрос выполняю при помощи TQuery.

Ошибка:
Invalid use of keyword.
Token: t1


 
Loginov Dmitry ©   (2008-06-26 07:41) [1]

> Invalid use of keyword.
> Token: t1



> DELETE t1 FROM


Ругается на t1. Оно здесь лишнее.


 
Олег   (2008-06-26 07:48) [2]

Этот пример я нашел где-то на просторах интернета... если убрать эту t1 то ругается на запятую.

Может есть какой другой способ удалить из DBF файла дублирующиеся по одному полю записи?


 
Sergey13 ©   (2008-06-26 08:42) [3]

> [2] Олег   (26.06.08 07:48)
> Может есть какой другой способ удалить из DBF файла дублирующиеся по одному полю записи?
Удалять надо все дублирующиеся записи или одну какую-то оставлять?


 
Anatoly Podgoretsky ©   (2008-06-26 08:42) [4]

А что ты используешь для удаления?

Дельфи же не понимает таких слов DELETE t1 FROM tab t1 , tab t2 WHERE t1.ID = t2.ID

И что об этом говорит твоя справка?


 
Олег   (2008-06-26 08:47) [5]


> Удалять надо все дублирующиеся записи или одну какую-то
> оставлять?

одну надо оставить


> А что ты используешь для удаления?

TQuery


 
Palladin ©   (2008-06-26 08:55) [6]

расслабся, без существования уникального ключа одним запросом ты этого не сделаешь


 
Sergey13 ©   (2008-06-26 08:55) [7]

> [5] Олег   (26.06.08 08:47)
> одну надо оставить

Какую конкретно?


 
Олег   (2008-06-26 08:58) [8]

любую)


 
Виталий Панасенко(дом)   (2008-06-26 09:23) [9]

delete from tablename t1 where t1.key = (select t2.key from tablename t2 where t2.key=t1.key group by t2.key having count(*)>1)
t2 и t1 - одна и та же таблица


 
Виталий Панасенко(дом)   (2008-06-26 09:27) [10]

только быстрее это дело сделать при помощи небольшой программки из двух компонентов - кверика и тейбла.. построить индекс по ключу, сделать его активным для тейбла, а в кверик выбрать ключ и количество повторений. далее тейблом ищем первую запись по ключу, и в цикле удаляем N-1 раз.. где N - количество повторений для данного значения ключа.. вчера такое нужно было то же сделать.. на 50000 записях запросом можно было выспаться.. а программка слепленная за 5 минут отработала считанные секунды


 
Palladin ©   (2008-06-26 09:32) [11]

и что? в FoxPro прямо так можно?

t1.key = (select t2.key from tablename t2 where t2.key=t1.key group by t2.key having count(*)>1)


 
Виталий Панасенко ©   (2008-06-26 10:01) [12]


> Palladin ©   (26.06.08 09:32) [11]

главное, работает.. а можно или нет... это другой вопрос..:-)


 
Palladin ©   (2008-06-26 10:08) [13]


> Виталий Панасенко ©   (26.06.08 10:01) [12]

а пробовал с двумя дублями?
а правда одну запись оставляет?


 
Виталий Панасенко(дом)   (2008-06-26 10:18) [14]


> Palladin ©   (26.06.08 10:08) [13]
>
>
> > Виталий Панасенко ©   (26.06.08 10:01) [12]
>
> а пробовал с двумя дублями?
> а правда одну запись оставляет?

а сам не пробовал?


 
Виталий Панасенко(дом)   (2008-06-26 10:22) [15]

запрос такого вида - работает, т.е. ключ - одно поле


 
Palladin ©   (2008-06-26 10:23) [16]

а мне"то что пробовать, я и так вижу, что удалятся обе записи


 
Олег   (2008-06-26 11:12) [17]


> Виталий Панасенко(дом)   (26.06.08 09:23) [9]
> delete from tablename t1 where t1.key = (select t2.key from
> tablename t2 where t2.key=t1.key group by t2.key having
> count(*)>1)t2 и t1 - одна и та же таблица

Спасибо! Но действительно слишком долго...

поэтому за это

> Виталий Панасенко(дом)   (26.06.08 09:27) [10]

Огромное спасибо! :)


 
Виталий Панасенко(дом)   (2008-06-26 12:16) [18]


> Palladin ©   (26.06.08 10:23) [16]
>
> а мне"то что пробовать, я и так вижу, что удалятся обе записи

ну, я как истинный хохол - не повирю, докы не перевирю:-)... работает



Страницы: 1 вся ветка

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
15-1212718745
brother
2008-06-06 06:19
2008.07.27
посоветуйте монитор...


3-1202821453
lead-in
2008-02-12 16:04
2008.07.27
минимальная БД


15-1213202010
Dmitry S
2008-06-11 20:33
2008.07.27
Упорядочивание mp3 архива.


2-1214368996
Димон_
2008-06-25 08:43
2008.07.27
TXPManifest


15-1211663863
Германн
2008-05-25 01:17
2008.07.27
Насколько же я могу быть тупым!