удалить оператор, содержащий соединение - PullRequest
1 голос
/ 01 апреля 2019

Я нашел дубликаты записей в моей базе данных год назад.я пытаюсь очистить их, я нашел все идентификаторы, которые мне нужно удалить, используя:

select id
from impWthrDta as a
right join (
    SELECT dte, rltn
    FROM impWthrDta 
    GROUP BY dte, rltn
    HAVING count(*) > 1
) as b
on a.dte = b.dte
and a.rltn = b.rltn
where id >= '0'
order by a.rltn, a.dte

почему я не могу просто заменить

select *

на

delete

1 Ответ

1 голос
/ 01 апреля 2019

Можно. Просто добавьте оператор DELETE и используйте ваш запрос в качестве фильтра для идентификаторов:

DELETE FROM WhateverTable
WHERE ID IN 
(select id
from impWthrDta as a
right join (
    SELECT dte, rltn
    FROM impWthrDta 
    GROUP BY dte, rltn
    HAVING count(*) > 1
) as b
on a.dte = b.dte
and a.rltn = b.rltn
where id >= '0')
...