Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];
Вниз
Удаление повторяющихся записей в таблице Найти похожие ветки
← →
kol (2003-04-23 16:07) [0]В таблице есть 2 поля комбинация которых должна быть уникальной. Нужно стереть записи в которых эта комбинация повторяется. но про этом из повторяющихся записей одна должна остаться в базе.
← →
Reindeer Moss Eater (2003-04-23 16:12) [1]Класс TDataSet, метод Delete
← →
Жук (2003-04-23 16:42) [2]
delete from tabl t1
where (select count(t2.id1) from tabl t2 where t2.id1=t1.id1 and t2.id2=t1.id2)>1
← →
Reindeer Moss Eater (2003-04-23 16:49) [3]Неправильно
← →
Жук (2003-04-23 16:51) [4]
> Reindeer Moss Eater (23.04.03 16:49)
> Неправильно
Это вы мне ? :-)
← →
Reindeer Moss Eater (2003-04-23 16:52) [5]Ага
← →
Жук (2003-04-23 16:52) [6]А конкретнее ?
← →
Reindeer Moss Eater (2003-04-23 16:58) [7]Автор говорит про два поля.
Оба поля - не первичные ключи и их комбинация тоже не PK.
Тольуо этими полями нельзя однозначно определить записи для удаления
← →
Johnmen (2003-04-23 17:01) [8]Не надо спорить...:)
Пока автор не указал БД.
← →
Карелин Артем (2003-04-23 17:02) [9]Жук © (23.04.03 16:52)
И сколько же записей останется после удаления? По-моему 0. И таблица вроде как одна.
← →
VAleksey (2003-04-23 17:07) [10]SELECT DISTINCT
А все остальное на фиг любым способом :-)
← →
NAlexey (2003-04-23 17:09) [11]А так будет работать?
SELECT
FIELD1,
FIELD2,
FIELD3
FROM
TABLE_NAME
GROUP BY
FIELD1,
FIELD2,
FIELD3
HAVING count(*) > 1
← →
Карелин Артем (2003-04-23 17:10) [12]VAleksey © (23.04.03 17:07)
Или результат этого перебросить в другую таблицу и ей заменить старую.
← →
NAlexey (2003-04-23 17:15) [13]А вот примерчик и с удалением:
SELECT
FIELD1,
FIELD2
FIELD3
INTO
#tmp
FROM
TABLE_NAME
GROUP BY
FIELD1,
FIELD2,
FIELD3
HAVING count(*) > 1
delete
TABLE_NAME
FROM
TABLE_NAME tt
WHERE exists (
SELECT
*
FROM
#tmp t
WHERE
tt.FIELD1 = t.FIELD1 and
tt.FIELD2 = t.FIELD2 and
tt.FIELD3 = t.FIELD3
)
INSERT INTO TABLE_NAME SELECT * FROM #tmp
drop table #tmp
← →
kravchuk (2003-04-23 17:34) [14]думаю можно так
delete from our_table t1
where exists
(
select t2.id
from our_table t2
where t1.field1=t2.field1
and t1.field2=t2.field2
and t1.id<>t2.id
)
id - это первичный ключ
← →
NDeu (2003-04-23 17:45) [15]http://www.ibase.ru/devinfo/deldupes.htm
← →
Карелин Артем (2003-04-23 17:52) [16]Народ, а ведь автор не упомянал о второй таблице.
← →
Reindeer Moss Eater (2003-04-24 09:08) [17]А кто здесь упомянул о второй таблице?
← →
Жук (2003-04-24 09:15) [18]
> Карелин Артем © (23.04.03 17:02)
> И сколько же записей останется после удаления? По-моему
> 0. И таблица вроде как одна.
Таблица одна. Записей, удовлетворяющих условию, останется одна.
← →
NAlexey (2003-04-24 10:08) [19]>А кто здесь упомянул о второй таблице?
Да собственно, а кто?
← →
Reindeer Moss Eater (2003-04-24 10:09) [20]Заблуждение
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c