I have a two tables cstomers and orders table. These tables contain 20,000 records
What i need is i want to update the orders table with the customer_id based on the email. Can i use subquery and php OR it can be accomplished using a single query and efficient method?
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
UPDATE customers c INNER JOIN orders o ON o.customer_id = c.id
SET o.customer_id = c.id
WHERE o.email = c.email
That should do it. Because this is an INNER JOIN, it just won't update orders for user accounts that don't exist in the customers table.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With