MySQL用表2数据更新表1

标签 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 字段保持不变。

我将如何以最快的方式完成这项工作?每个表将有数千行,此同步命令会经常运行。

最佳答案

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/

相关文章:

android - 用MySQL flutter 无限 ScrollView

ios - 使用 Swift 从 MySQL 数据库检索信息

mysql - 在 Cocoa 应用程序中使用 MySQL

java - 计算多个登录和注销 session

java - 在线存储 SQLite 数据库

php - 如何比较日期并仅显示今天且到期之前的记录

mysql - 通过用户id插入数据

php - SQL 使用 PHP 递归更新表

SQL 查询包含 IF/ELSE 语句

php - 什么时候使用 real_escape_string 比较合适?数据何时以 POST 方式到达,或者就在编写查询之前到达?