根据另一个表

时间:2018-02-28 09:04:11

标签: mysql sql sql-update

我试图运行一个比较两个表的查询。我有一张名为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
)

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果我理解你的意图,一般的方法可能是:

UPDATE mw_list_subscriber mls , mw_email_blacklist AS meb SET mls.status='Blacklisted' WHERE mls.email = meb.email