将两个mysql表合并到第三个表中
我有两个mysql表: 表1:将两个mysql表合并到第三个表中,mysql,merge,Mysql,Merge,我有两个mysql表: 表1: id name type 1 a 123 2 b 125 表2: id text 1 test1 2 test2 这两个表需要合并到第三个表中 表3: id name type text id name type text 1 a 123 2 b 125 3 test1
id name type
1 a 123
2 b 125
表2:
id text
1 test1
2 test2
这两个表需要合并到第三个表中
表3:
id name type text
id name type text
1 a 123
2 b 125
3 test1
4 test2
该id是一个自动增量id。前两个表包含不相关的数据。我的意思是,表1中id=1的行与表2中id=1的行无关。因此,我基本上想编写一个sql脚本,将值插入到表3中,结果如下所示:
表3:
id name type text
id name type text
1 a 123
2 b 125
3 test1
4 test2
旧表和新表中的ID不必匹配。只有来自表的数据需要在新表中。
我是mysql的新手,如果有人能帮我,那就太好了
谢谢 可以通过以下方式完成:
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
这是一个供你玩的游戏
事实上,我不明白你的方案中的空白是用来做什么的,并且假设它都是空的。如果没有,您可以使用任何您想要的默认值来替换此查询中的NULL。可以使用以下方法完成此操作:
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
这是一个供你玩的游戏
事实上,我不明白你的方案中的空白是用来做什么的,并且假设它都是空的。如果没有,您可以用您想要的任何默认值替换此查询中的NULL。由于没有任何相关内容,请从@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;
由于没有任何关联,请从@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;
非常感谢!成功了!!你太棒了是的。。。空值是确定的。您知道是否有办法记录合并到外部日志文件的行数吗?非常感谢!成功了!!你太棒了是的。。。空值是OK你知道有没有办法记录合并到外部日志文件的行数吗?你太棒了!谢谢你,你太棒了!非常感谢。