删除包含连接的语句

时间:2019-04-01 15:44:31

标签: sql join sql-server-2012 duplicates sql-delete

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

myModel_instance = csv_document.objects.get(pk=164)
 print(myModel_instance.get_absolute_url())      
#prints 
/dc/eda_action/CSV_Upload_to_psqlaacc47/```

为什么我不能简单地替换

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 *

1 个答案:

答案 0 :(得分:1)

可以。只需添加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')