sql - SQL 上 2 个数据集之间的数据协调
问题描述
我目前需要使用 SQL Oracle 查找 new_master 数据集和以前的数据集之间的所有差异。数据集具有相同的结构,由整数和字符串组成,并且没有唯一的键 id,除非我一起选择几列。您可以在开头看到一个图像作为 image_table。我在网上找到了这段代码,我想问你是否有任何建议。
SELECT n.*
FROM new_master as n
LEFT JOIN old_master as o
ON (n.postcode = o.postcode)
WHERE o.postcode IS NULL
SORT BY postcode
这样做时,我应该从 new_master 取回不在旧条目中的所有条目。
谢谢
解决方案
如果您在 Oracle 数据库中,有几个查询可以帮助您找到任何差异。
在 OLD 中查找不在 NEW 中的任何记录。
SELECT * FROM old_master
MINUS
SELECT * FROM new_master;
在 NEW 中查找不在 OLD 中的任何记录。
SELECT * FROM new_master
MINUS
SELECT * FROM old_master;
计算 OLD 中的项目数
SELECT COUNT (*) FROM old_master;
计算 NEW 中的项目数
SELECT COUNT (*) FROM new_master;
如果存在具有相同列数据的重复行,则除了COUNT
查询之外还需要查询。MINUS
推荐阅读
- delphi - 创建 Tform 的覆盖版本时找不到资源
- mongodb - 使用 Jmeter 的 Groovy 脚本进行 MongoDB 插入操作
- node.js - 具有 semver 范围的 Git SSH URL 作为 npm 依赖项
- javascript - 从子组件访问数据而不渲染父组件React-js
- python - 如何检查 2D 图形中的所有点的距离并确保没有一个点太近?
- xml - Custom splitting of XML using XSLT
- java - 在 Kotlin 中将地图转换为对象
- javascript - JS display div on click of disabled input
- r - 无法使用 devtools 从 github 安装 Kieran Healy 的“socviz”包
- arrays - 转换嵌套数组类型