我目前有两个数据库表
- 客户
- id
- 名称
- 电子邮件
- reseller_id
- 经销商
- id
- 名称
- 电子邮件
我想将它们迁移到新的用户表:
用户
- id
- 名称
- 电子邮件
- 类型(类型= 1是客户,类型2 =转售商)
customer_reseller
- customer_id
- reseller_id
我想通过mysql查询进行迁移。这是我到目前为止的内容:
INSERT INTO customer_reseller (customer_id, reseller_id)
SELECT
(SELECT id FROM users WHERE type = 1) AS customer_id,
(SELECT ??) AS reseller_id'
);
我如何获取reseller_id并确保它对应于正确的客户?
答案 0 :(得分:1)
说明:您正在做的是使用联结表将客户与代理商之间的关系更改为多对多,而不是一对多。在这种情况下,您将允许一个客户关联多个经销商。
您需要来自customers
的迁移前数据,才能知道哪个客户与哪个代理商相关联,因此这是从一个表中进行简单查询就可以迁移所有关联。
INSERT INTO customer_reseller (customer_id, reseller_id)
SELECT DISTINCT id, reseller_id
FROM customers
请注意,使用DISTINCT
仅选择唯一的对(如果您没有受到约束的约束,那么在此之前,最好把它放入)。