我试图运行一个比较两个表的查询。我有一张名为mw_email_blacklist的表,这张表记录了我列入黑名单的电子邮件的大约20万条记录。在我的另一张表中,我获得了我的列表订阅者,他们获得了“#”状态'字段,可以等于"黑名单"然后他们无法收到电子邮件。
这两张表都收到了一封电子邮件'字段,所以我的计划是根据电子邮件字段做一个where子句。然而,这并没有真正成功。有人可以帮助我吗?
包含SQL:
UPDATE
`mw_list_subscriber` mls,
`mw_email_blacklist` meb
SET
mls.`status` = "Blacklisted";
WHERE
mls.`email` = meb.`email`;
这个SQL实际上计算了一些可能是适当数量的应该被列入黑名单的电子邮件,但在将其写入更新子句时我无法使其工作。
SELECT count(ls.email)
FROM mw_list_subscriber ls
WHERE EXISTS (
select email from mw_email_blacklist eb
WHERE ls.email = eb.email
)
提前致谢!
答案 0 :(得分:1)
如果我理解你的意图,一般的方法可能是:
UPDATE mw_list_subscriber mls , mw_email_blacklist AS meb
SET mls.status='Blacklisted'
WHERE mls.email = meb.email