2011-10-05 69 views
2

我有一個表像這樣:從一個表創建多對一表的SQL查詢?

column1 column2 
------- ------- 
key1 value1 
key1 value2 
key1 value3 
key2 value4 
key2 value5 
key2 value6 

我想創建以下兩個表:

id column1 
-- ------- 
1 key1 
2 key2 

key_id column2 
------ ------- 
1  value1 
1  value2 
1  value3 
2  value4 
2  value5 
2  value6 

也就是說,我想一個表分成許多到一兩張新表之間的關係。

我該如何編寫SQL查詢來執行此操作?

回答

3

假設在你的第一個新表中的id列是標識列:

INSERT INTO NewTable1 
    (column1) 
    SELECT DISTINCT column1 
     FROM OldTable; 

INSERT INTO NewTable2 
    (key_id, column2) 
    SELECT n1.id, o.column2 
     FROM OldTable o 
      INNER JOIN NewTable1 n1 
       ON o.column1 = n1.column1; 
-2

爲什麼不u使用PHP我的管理和手動輸入數據。它會爲你寫入php。

此外,您每個桌子上的ID字段必須始終是唯一的並自動遞增。

你不能在主鍵中使用111 222

+3

-1:這個答案沒有意義。 –