2010-04-29 83 views
0

我想糾正以前的數據庫創建與包含需要保存的數據的表。由於某些表格仍然可以重複使用,因此我不需要重新創建一個全新的數據庫,而是需要將存在的表格分成兩個我已經完成的表格。現在我試圖將數據插入到2個新表中,並且由於舊錶中的重複數據,我很難做到這一點。數據庫表複製

舊錶結構:

ClientProjects clientId PK 
       clientName 
       clientProj 
       hashkey MD5 (clientname and clientProj) 

新的表結構:

client   clientId PK 
       clientName 

projects   queryId PK 
       clientId PK 
       projectName 

我希望這是有道理的。問題是,在舊錶中,例如,您擁有多個clientIds的客戶端。

回答

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;