php - Mysql PHP查询更新

标签 php mysql

我有两个表 cstomers 和 orders 表。 这些表包含 20,000 条记录

我需要的是根据电子邮件使用 customer_id 更新订单表。 我可以使用子查询和 php 还是可以使用单个查询和高效方法来完成?

客户表

id  email     name
--------------
1 | email1 | name1
2 | email2 | name3
3 | email3 | name3

订单表

order_id  customer_id   email    product name  group_id
-------------- -----------------------------------------
1         1             email1    prod1          0
2         (NULL)        email1    prod1          1
3         1             email1    prod1          0
4         (NULL)        email2    prod1          1
5         2             email2    prod1          0
6         2             email2    prod1          1
7         (NULL)        email2    prod1          1
2         (NULL)        email1    prod1          1
  • group_id =0表示客户有账号
  • group_id =1表示客户没有账号

最佳答案

UPDATE customers c INNER JOIN orders o ON o.customer_id = c.id
SET o.customer_id = c.id
WHERE o.email = c.email

应该可以了。因为这是一个 INNER JOIN,所以它不会更新 customers 表中不存在的用户帐户的订单。

关于php - Mysql PHP查询更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4158881/

相关文章:

php - 服务器时间不对

javascript - 如何从具有 css 过滤器的 html 创建图像或 pdf?

Mysql删除超过10秒的记录

在 MYSQL 中设置 PHP 冷却时间

mysql - 在没有 '-' mysql 的情况下计算不在另一个表中的值

php - 有什么方法可以在不使用 twig 的情况下处理 symfony 上的错误?

javascript - Ajax请求表单提交问题

php - 弃用 : preg_replace(): The/e modifier is deprecated in phpmailer

php - "flag as spam"功能的数据库结构

mysql - 如果第二个表没有匹配信息,如何连接两个表