我正在努力将这个大表拆分为更小的表,以便通过外键更容易地管理,并且在试图将数据重新组合在一起时遇到了一个困境。我是新的工作与这种类型的数据合并,所以我有点迷路。
有3个表:一个表包含产品所有者列表,一个表包含他们负责的系统列表,原始表包含所有数据(示例如下):
Product Owners Table:
+----+---------------+
| id | product_owner |
+----+---------------+
| 1 | User1 |
+----+---------------+
PRIMARY KEY: id
System Table:
+----+-----------+---------------+
| id | system | product_owner |
+----+-----------+---------------+
| 6 | Server1 | NULL |
+----+-----------+---------------+
FOREIGN KEY: product_owner(id)
Original Table:
+---------+---------------+
| system | product_owner |
+---------+---------------+
| Server1 | User1 |
+---------+---------------+
我想从原始表中获取数据并将其与新的系统表合并,但是我不想走多个UPDATE
语句的路线来添加需要添加的内容。解决这个问题的最佳途径是什么?
经过更多的探索和阅读额外的术语,我能够通过使用join
语句与update
,set
和where
语句的混合来解决我的问题:
update system_table a
join original_table.system b
on a.system = b.system
join product_owner c
on c.product_owner = b.product_owner
set a.product_owner = c.id
where c.product_owner = b.product_owner;