抱歉标题不明确。
我有两个表:
表 1:mailing_email
表 2(动态表但现在是):membership
表 1 包含数据库中所有电子邮件帐户的列表和一些辅助字段,例如姓名。它还有一个名为 communicate
的列。
communicate
基本上是我对 subscribed
的术语。任何取消订阅链接都会将 communicate
设置为 false。
mailing_email
和membership
都有一个email
和communicate
列。
我需要编写一个发生以下情况的查询:
mailing_email.communicate
更新为 membership.communicate
的当前状态,其中 mailing_email.email
= membership.email
。如果 mailing_email
中存在电子邮件,而 membership
中不存在,则 communicate
字段保持不变。
我将如何以最快的方式完成这项工作?每个表将有数千行,此同步命令会经常运行。
最佳答案
MySQL 提供了一个update join
语法:
UPDATE mailing_email
JOIN membership ON mailing_email.email = membership.email
SET mailing_email.communicate = membership.communicate
关于MySQL用表2数据更新表1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21536029/