包含 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')
我在我的数据库中发现了一年前的重复记录。我正在尝试清理它们 我发现我需要删除的所有 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')