我有一张这样的表:
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查询来执行此操作?
答案 0 :(得分: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;
答案 1 :(得分:-2)
为什么不使用php我的管理员并手动输入数据。它会为你编写php。
此外,每个表上的id字段必须始终唯一且自动递增。
您不能在主键中使用111 222