我有两个表 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/