gpt4 book ai didi

sql - 如何删除不在其中的记录

转载 作者:行者123 更新时间:2023-12-02 14:23:00 24 4
gpt4 key购买 nike

您好,我有以下 SQL 查询,它为我提供了 Scheme_Id,它同时存在于 ProjectSchemesSchemes 表中。我想删除 Schemes 表中没有 ProjectSchemes 表记录的所有记录。我怎样才能这样做呢?请帮忙。我正在使用 MSSQL

select scheme_id from Schemes where Scheme_Id
in(select s.Scheme_Id from Projects p
inner join ProjectSchemes ps on ps.Project_Id=p.Project_Id
inner join Schemes s on s.Scheme_Id=ps.Scheme_Id)

我正在尝试执行以下操作,但它不起作用。不工作意味着没有记录受到影响,但当我检查我的Schemes表时,有太多记录,以至于在ProjectSchemes表中找不到它们的scheme_id

delete from Schemes where Scheme_Id
not in(select s.Scheme_Id from Projects p
inner join ProjectSchemes ps on ps.Project_Id=p.Project_Id
inner join Schemes s on s.Scheme_Id=ps.Scheme_Id)

最佳答案

DELETE FROM schemes
WHERE scheme_id NOT IN (
SELECT DISTINCT scheme_id
FROM projectschemes
WHERE scheme_id IS NOT NULL
)

或者您也可以使用

DELETE
FROM schemes
WHERE NOT EXISTS (
SELECT 1
FROM projectschemes
WHERE projectschemes.scheme_id = schemes.ID
)

关于sql - 如何删除不在其中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14953624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com