sql - 如何查看两张表之间的差异
问题描述
我有 2 张桌子:1 张临时桌子,另一张是我的主桌子。
每天我都会更新我的临时表,并且我想根据我对临时表所做的更改来更新我的主表。
示例:第一个临时表包含一个 ID 和名称。然后我将 temp 中的值插入到主表中。但是当我从临时表中进行更改时,比如插入另一个 ID 和名称,我希望我的主表进行比较,并且只插入临时表中的唯一 ID。
解决方案
您可以使用NOT EXISTS
如下
INSERT into main_table(
id, name,
...
)
SELECT
id,name,
...
FROM temp_table t
WHERE
NOT EXISTS(
SELECT 1
FROM main_table m
WHERE m.id = t.id
)
干杯!!
推荐阅读
- vba - ComboBox Enter 事件从对象浏览器中消失
- python - 为什么我的自动编码器没有使用其代码的所有元素?
- node.js - node.js - 错误:第一次连接时无法连接到服务器 [localhost:27017] [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
- c# - 如何拦截mongodb c#驱动程序2.x的AsQueryable()?
- php - 如何将数据从 Python 发送到 Android 应用程序
- mysql - 如何按列显示结果?
- hadoop-yarn - 什么是 Unmanaged Application Master 及其在纱线联合 hadoop 中的作用?
- r - 将克里金图导出为栅格时出现问题
- java - import org.apache.axis2.client.options 无法解析
- java - Java Spring Boot 应用程序启动失败 - 错误 osboot.SpringApplication - 应用程序启动失败 java.lang.IllegalStateException