如果表中的行具有来自另一个表的电子邮件记录,则从表中删除行

时间:2017-08-29 15:50:32

标签: sql sql-server

我有两个表,一个是客户,包含他们的姓名,电子邮件,公司等。我有另一个表,其中只包含需要删除的客户的电子邮件。我需要开发一个查询来删除第一个表中的所有行,如果它们在第二个表中包含一个电子邮件。这些表位于Microsoft SQL Server数据库中。

当我在学习SQL的过程中,我不知道如何做到这一点,我已经通过问题进行搜索,找不到类似的问题。

2 个答案:

答案 0 :(得分:1)

你可以这样使用exists()

delete c
from customers as c
where exists (
  select 1
  from emails as e
  where e.email = c.email
  )

in()

delete c
from customers as c
where c.email in (select email from emails)

答案 1 :(得分:1)

使用IN子句:

Delete from [customers] where [email] in (Select [email] from [toberemoved])