包含 join 的删除语句

delete statement that contains join

我在我的数据库中发现了一年前的重复记录。我正在尝试清理它们 我发现我需要删除的所有 ID 使用:

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

可以。只需添加 DELETE 语句并将您的查询用作 ID 的过滤器:

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')