我有两个表,一个是客户,包含他们的姓名,电子邮件,公司等。我有另一个表,其中只包含需要删除的客户的电子邮件。我需要开发一个查询来删除第一个表中的所有行,如果它们在第二个表中包含一个电子邮件。这些表位于Microsoft SQL Server数据库中。
当我在学习SQL的过程中,我不知道如何做到这一点,我已经通过问题进行搜索,找不到类似的问题。
答案 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])