SQL Server:如何基于另一个表删除

时间:2018-10-25 20:58:39

标签: sql sql-server sql-delete

我有一个USERS表,其中有活动用户和非活动用户,还有一个名为Leaders的表,用于存储团队负责人(因此是用户列表)。

我想删除表Leaders中处于非活动状态的那些用户(表users)。

根据评论进行编辑:

  • Users表:ID和有效
  • Leaders表:ID

2 个答案:

答案 0 :(得分:3)

您可以使用in条件:

DELETE
FROM   leaders
WHERE  id IN (SELECT id
              FROM   users
              WHERE  active = 0 -- Or however you mark inactive users
             )

答案 1 :(得分:2)

您可以在delete中加入联接,类似于select:

delete ld
from leaders ld
join users us on ld.idUser = us.idUser
where us.active = 0