MySQL更新表1与表2数据

时间:2014-02-03 19:31:00

标签: mysql sql database synchronization sql-update

对于模棱两可的标题感到抱歉。

我有两张桌子:

表1:mailing_email

表2(动态表但现在是):membership

表1包含数据库中所有电子邮件帐户的列表以及一些辅助字段,例如名称。它还有一个名为communicate的列。

communicate基本上是subscribed的术语。任何取消订阅链接都会将communicate设置为false。

mailing_emailmembership都有emailcommunicate列。

我需要编写一个查询,其中发生以下情况:

mailing_email.communicate更新为membership.communicate mailing_email.email的当前状态membership.email = mailing_email。如果membership中存在communicate中不存在的电子邮件,{{1}}字段保持不变。

我如何以最快的方式做到这一点?每个表都会有这个同步命令经常运行的数千行。

1 个答案:

答案 0 :(得分:4)

MySQL提供update join语法:

UPDATE mailing_email
JOIN   membership ON mailing_email.email = membership.email
SET    mailing_email.communicate = membership.communicate