首页 > 解决方案 > 从表A中选择客户,然后在表B中找到客户并将customer_id插入到表B中

问题描述

我正在从 excel 表中获取旧记录并将它们移动到数据库中。

我有一个客户表和一个订单表。

客户表有字段 customer_id ---主键 ---自动递增 First_Name Last_Name

订单表具有以下字段:customer_id(空将是客户表的外键) First_Name(填充) Last_Name(填充)

我需要从客户表中逐行选择customer_id、first_name 和last_name,然后在orders 表中找到具有相同名称的每个订单,然后将customer_id 从customers 表插入到orders 表中。

大约有 5000 个订单和 3000 个唯一客户,我正在尝试将 customer_id 分配给每个订单。我可以手动完成,但需要一周的周日。

谢谢

标签: mysqldatabase

解决方案


您现有的表设计存在问题(例如,如果两个或多个客户具有相同的名称怎么办?),如果您想更新customer_id基于客户名称的表,您可以尝试如下查询。

update o
set o.customer_id =c.customer_id 
from orders o
inner join customers c on c.First_Name =o.First_Name and c.Last_Name=o.Last_Name

推荐阅读