我有两张表客户和订单表。
这些表包含20000条记录
我需要的是根据电子邮件用客户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

组id=0表示客户有帐户
组id=1表示客户没有帐户

最佳答案

也许这个(未经测试)

UPDATE orders o SET o.customer_id = (SELECT c.customer_id FROM customers c WHERE c.email = o.email)

09-27 19:32