Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果表中有来自另一个表的电子邮件记录,则从表中删除行_Sql_Sql Server - Fatal编程技术网

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

Sql 如果表中有来自另一个表的电子邮件记录,则从表中删除行,sql,sql-server,Sql,Sql Server,我有两个表,一个是客户表,包含他们的姓名、电子邮件、公司等。另一个表只包含需要删除的客户电子邮件。我需要开发一个查询来删除第一个表中的所有行,如果它们在第二个表中包含电子邮件。这些表位于Microsoft SQL Server数据库中 由于我正在学习SQL,我不知道该怎么做,我已经搜索了所有问题,但找不到足够类似的问题。您可以使用exists()如下所示: delete c from customers as c where exists ( select 1 from emails a

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

由于我正在学习SQL,我不知道该怎么做,我已经搜索了所有问题,但找不到足够类似的问题。

您可以使用
exists()
如下所示:

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

或()中的

使用IN子句:

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

听起来这两者的共同点是电子邮件地址,你可以在电子邮件地址上加入,只找到那些电子邮件地址存在于你的表中的、包含要删除的地址。我们不提供免费代码编写服务。至少试着做点什么,把它贴在这里。如果它不起作用,我们可以帮助您修复它。提示:使用
EXISTS
。您没有非常努力地搜索。我在5秒钟内找到了一个副本。我在谷歌上搜索了你问题的标题,第一个点击的是答案:我不知道为什么这是DV。仅仅因为其他地方可能有重复,并不意味着这是错误的,并保证DV IMHO。@scsimon感谢平等投票。似乎有些人对错误/重复问题的答案投了反对票,是因为问题本身,而不是答案今天早些时候也发生在我身上:@scsimon同意了。不要因为问题重复或写得不好而惩罚回答者。这也违背了“我什么时候应该投否决票”。SMH.@TabAlleman我不知道你在没有任何评论的情况下发布链接想要传达什么。
Delete from [customers] where [email] in (Select [email] from [toberemoved])