繁体   English   中英

根据另一个表中的记录更新SQL记录

[英]Update SQL record based on a record in another table

我正在尝试运行一个查询,该查询比较两个表。 我有一个名为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实际上算了一些应该被列入黑名单的正确数量的电子邮件,但是当将其写入update子句时,我无法使其正常工作。

SELECT  count(ls.email) 
FROM mw_list_subscriber ls
WHERE EXISTS (
    select email from mw_email_blacklist eb
    WHERE ls.email = eb.email
)

提前致谢!

如果我正确理解您的意图,那么一般的方法可能是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM