mysql - 从表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 分配给每个订单。我可以手动完成,但需要一周的周日。
谢谢
解决方案
您现有的表设计存在问题(例如,如果两个或多个客户具有相同的名称怎么办?),如果您想更新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
推荐阅读
- python - ImportError:没有名为请求的模块(pycharm)
- java - 如何使用 Stream 获取一组实例变量
- regex - 使用 \k 的记事本 ++ 组替换
- javascript - 如何在 next.js 中实现带有重定向的链接?
- reactjs - 带有 React-Native n.getElementsByTagName 的 FullStory 不是函数
- python - 如何在 jupyter notebook 中指定文件路径
- java - 实现 spring 自定义注解就像@Transactional
- vba - 将演示文稿与 ActivePresentation.Slides.InsertFromFile 结合时,Mac 上的 VBA Powerpoint 错误
- python - 在python中按日期对类实例列表进行排序
- arrays - VBA EXCEL宏代码执行中断使用列重新排序数组