2009-08-27 4 views
1

мне удается идентифицировать повторяющиеся записи из двух различных баз данных:Удалить дубликаты записей из двух баз данных

select * from 
    taskperformance a, [email protected]_prod b 
where 
    a.activityin = b.activityin 
    and a.completiondate = b.completiondate 

Как я могу удалить дубликаты записей из b?

Я пробовал:

delete [email protected]_prod where exist ( 
select * from 
    taskperformance a, [email protected]_prod b 
where 
    a.activityin = b.activityin 
    and a.completiondate = b.completiondate) 

Но она удаляет больше, чем мне нужно.

ответ

2

Вы не должны повторно ссылку b в подзапрос:

delete [email protected]_prod b 
where exists (
    select * from taskperformance a 
    where a.activityin = b.activityin 
    and a.completiondate = b.completiondate 
) 
+0

К сожалению, мне очень жаль. Плохое редактирование. Я не повторил ссылку b. Это опечатка. Я добираюсь, как и вы, и удаляет все записи. .. :(Слава богу, я поставил autocommit на false ... (не я?: -o) – OscarRyz

+0

Я считаю, что вы все еще можете использовать псевдонимы ... удалить t @ db2 alias где ... –

+0

@Greg Ogle: Could вы немного расширяете этот комментарий. Предположим, я не знаю, о чем вы говорите;) – OscarRyz

Смежные вопросы