从Postgresql中删除记录

从Postgresql中删除记录,sql,postgresql,sql-delete,Sql,Postgresql,Sql Delete,我需要根据其他两个表的内部联接条件从一个表中删除记录,但查询会运行很长时间 DELETE FROM public.blacklist WHERE subject_id NOT IN( SELECT DISTINCT a.id FROM public.subject a INNER JOIN stg.blacklist_init b ON a.subject_id=b.customer_code); 有什么办法可以做到这一点吗 谢谢。您可以使用不存在而不是不存在,我想您不需要不同的 DELETE

我需要根据其他两个表的内部联接条件从一个表中删除记录,但查询会运行很长时间

DELETE FROM public.blacklist WHERE subject_id NOT IN(
SELECT DISTINCT a.id FROM public.subject a
INNER JOIN stg.blacklist_init b ON a.subject_id=b.customer_code);
有什么办法可以做到这一点吗


谢谢。

您可以使用
不存在
而不是
不存在
,我想您不需要
不同的

DELETE FROM public.blacklist bl
 WHERE NOT EXISTS  (
                     SELECT 0 
                       FROM public.subject a
                      INNER JOIN stg.blacklist_init b 
                         ON a.subject_id=b.customer_code
                      WHERE a.id = bl.subject_id 
                     );