我有两个mysql表:
表1:
id name type
1 a 123
2 b 125
表2:
id text
1 test1
2 test2
这两个表需要合并到第三个表
表3:
id name type text
id是自动增量ID。前两个表具有不相关的数据。我的意思是,表1中id = 1的行与表2中id = 1的行无关。所以,我基本上想写一个sql脚本,它会在表3中插入值,最后看起来像这样:
表3:
id name type text
1 a 123
2 b 125
3 test1
4 test2
旧表和新表中的ID不必匹配。只需表中的数据需要在新表中。 我是mysql的新手,如果有人能帮助我,那就太棒了!
谢谢!
答案 0 :(得分:4)
可以通过以下方式完成:
CREATE TABLE Table3 (
id int auto_increment,
name ...,
type int,
text ...,
PRIMARY KEY (id)
);
INSERT INTO table3 (name, type, text)
SELECT name, type, text FROM (
SELECT name, type, NULL AS text FROM table1
UNION ALL
SELECT NULL as name, NULL as type, text FROM table2) AS t
使用自动增量功能,我们根本不需要重新计算id
。
这是一个 SQL Fiddle 供您玩。 )
我实际上并不明白你的方案中的空白空间是什么,并假设它是全部为NULL。如果没有,您只需将此查询中的NULL
替换为您想要的任何默认值。
答案 1 :(得分:2)
由于没有任何相关内容,请从@ raina77ow的表开始,但只使用两个查询:
INSERT INTO table3 (name, type, text)
SELECT name, type, NULL
from table1;
INSERT INTO table3 (name, type, text)
SELECT NULL, NULL, text
from table2;