mysql - 将两个mysql表合并成第三个表

标签 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 是一个自动递增的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 的新手,如果有人可以帮助我,那就太好了!

谢谢!

最佳答案

可以这样实现:

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 替换为您想要的任何默认值。

关于mysql - 将两个mysql表合并成第三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499446/

相关文章:

svn - 如何在合并中保留 Subversion 提交消息?

r - 合并不相等的数据帧并将缺失的行替换为 0

MySQL - 使用最后 12 位数字的随机值更新连接列

mysql - 在 PostgreSQL 中替代 MySQL 的变量?

MySQL:合并几个大表并添加值,优化

git merge 使用 vs2012 diff 工具

mysql - 将CTE存储过程转换为Mysql兼容数据库查询

path - mysql var/lib/mysql 目录不存在,无法启动 mysql 服务器

mysql - 如何在 zend2 中编写复杂的 sql 查询

mysql - 读取xml文件并通过MERGE将值放入sql表中