mysql - 如何将一个表中不匹配的行插入到另一个替代表中?

标签 mysql

我有两个结构相同的表

**t1**
+------+------+
| code |  vid |
+------+------+
| AAA  |   2  | - row1
| BBB  |   3  | - row2
| AAA  |   4  | - row3
| CCC  |   2  | - row4
+------+------+

**t2**
+------+------+
| code |  vid |
+------+------+
| AAA  |   2  | - row1
| BBB  |   3  | - row2
| AAA  |   4  | - row3
| CCC  |   3  | - row4
| DDD  |   4  | - row5
+------+------+

**Result table**
**t1**
+------+------+
| code |  vid |
+------+------+
| AAA  |   2  | - row1
| BBB  |   3  | - row2
| AAA  |   4  | - row3
| CCC  |   2  | - row4
| CCC  |   3  | - row5 New Inserted Row
| DDD  |   4  | - row6 New Inserted Row
+------+------+

我想将新记录从表 2 插入到表 1。行 row4 和 row5 是未数学化的行,我想添加到表 1 中。 我该如何做到这一点?

提前致谢!

最佳答案

尝试这个查询 -

INSERT INTO t1
  SELECT t2.* FROM t2
    LEFT JOIN t1
      ON t1.code = t2.code AND t1.vid = t2.vid
  WHERE t1.code IS NULL AND t1.vid IS NULL

关于mysql - 如何将一个表中不匹配的行插入到另一个替代表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9869594/

相关文章:

javascript - 使用 n :m related objects 上的关联对错误进行后续处理

mysql - 如何在搜索查询 Jpa 中一起使用 Starts with 和 contains ?

mysql - 将两个 SQL 查询的值相加以创建第三个值

mysql - 选择随机行,然后按不同表中的列排序

mysql - 数据库、表、列排序规则的区别

javascript - 在 Mysql 中使用 RLIKE - 为空或全部值

mysql - 在MySql中创建EER图

mysql - 在完成之前停止 MySQL 删除查询

mysql - 在 SQL 中的 SELECT 中设置变量

php - 在 mysql 中,如何更新时间戳类型?