我正在尝试使用包含需要保存的数据的表来纠正以前的数据库创建。由于某些表仍然可以重用,我不需要重新创建一个全新的数据库,而是需要将存在的表拆分为2个新表。现在我试图将数据插入到2个新表中,并且由于旧表中的重复数据,我很难做到这一点。
旧表结构:
ClientProjects clientId PK
clientName
clientProj
hashkey MD5 (clientname and clientProj)
新表结构:
client clientId PK
clientName
projects queryId PK
clientId PK
projectName
我希望这是有道理的。问题是在旧表中,例如,您有多个clientId的客户端。
答案 0 :(得分:1)
假设您的客户名称是唯一的,您可以执行以下操作:
INSERT client (clientId, clientName)
SELECT MAX(clientID), clientName FROM oldTable GROUP BY clientName;
INSERT project (clientId, projectName)
SELECT n.clientId, o.projectName from client n
INNER JOIN oldTable o on o.clientName = n.clientName;