【发布时间】:2012-07-11 16:58:58
【问题描述】:
我有两张桌子。主表是“CompleteEmailListJuly11”,第二个表是“CurrentCustomersEmailJuly11”。我想删除 CurrentCustomersEmailJuly11 基于电子邮件的 CompleteEmailListJuly11 表中的行。
我已经尝试过以下删除示例,但它并没有做任何接近我想要做的事情。这仅向我显示数据库中存在的那些,它不会向我显示不匹配的电子邮件列表。
DELETE * FROM CompleteEmailListJuly11 AS i
WHERE EXISTS (
SELECT 1 FROM CurrentCustomersEmailJuly11
WHERE CurrentCustomersEmailJuly11.email = i.EmailAddress
)
非常感谢您的帮助。
【问题讨论】:
-
你是什么意思它显示你那些存在于数据库中......它是一个
DELETE。 DELETE 命令不应该向您显示任何内容...它们应该删除内容。 -
您将“i”设为 CompleteEmailListJuly11 的别名。您可能无法在嵌套的 SELECT 语句中将该表称为“i”。
-
@Smandoli:为什么不呢?这是一个相关的子查询。这是否适合他的需要是另一个问题,但这种事情应该是严格合法的。
-
那我一定是错过了什么。是的,它是一个删除语句,但在 Access 2007 中它不会删除任何内容,它只会显示匹配项。然后,当我尝试根据上面列出的查询进行导出时,它仍然只显示应该删除的项目。
-
没关系显然宏被设置为禁用叹息。
标签: sql ms-access ms-access-2007