2011-10-05 73 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:这个答案没有意义。 –