Помогите правильно сделать DELETE :(

Модераторы: kdv, CyberMax

Ответить
Bychok
Сообщения: 13
Зарегистрирован: 19 июн 2007, 22:37

Помогите правильно сделать DELETE :(

Сообщение Bychok » 26 июн 2007, 01:06

Необходимо написать DELETE-конструкцию, которая удаляет из таблицы все, кроме одной, записи, в которых встречаются совпадения по некоторым полям. Одним словом, этим DELET'ом необходимо просто сделать SELECT DISTINCT ... ... . Возможно ли?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 26 июн 2007, 01:29

сначала найти что надо удалить, потом удалить.
или прочитать
http://www.ibase.ru/devinfo/deldupes.htm

Bychok
Сообщения: 13
Зарегистрирован: 19 июн 2007, 22:37

Сообщение Bychok » 26 июн 2007, 01:46

Топ по ссылке изучил, непонятно:( *бьется головой о стену*

select distinct Name, Year_Made, Price, Valuta, Probeg from tempwork

А те записи, которые остались вне данного запроса, необходимо удалить.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 26 июн 2007, 16:10

самый простой и надежный способ:
1. создать такую же таблицу
2. перенести туда эти записи запросом insert into... select distinct...from
3. грохнуть ВСЕ записи в оригинальной таблице
4. вернуть записи из временной таблицы в оригинальную
5. удалить временную таблицу

p.s. если б сам додумался, уже бы все давно сделал.

Bychok
Сообщения: 13
Зарегистрирован: 19 июн 2007, 22:37

Сообщение Bychok » 28 июн 2007, 23:46

Все гениальное - просто:) Большое спасибо:)

Ответить