sql - 根据组合键比较表的记录

标签 sql oracle postgresql postgresql-9.2

我的工作是刷新需要帮助的查找表数据。我有 2 个包含数据的表,一个是现有版本 (table1),另一个是新版本 (table2)。每个表的主键都是复合键。我知道每一行的行数不同,我需要找出差异。假设复合主键的 2 列部分被命名为 column1 和 column2。

通常,在“正常”主键设置中,我只会查找不在另一个表的主键列表中的主键值。但我不知道如何使用复合主键执行此操作。

我为 SQL Server 找到了类似的线程,但在我的情况下似乎不起作用,不确定我是否做错了什么。

How can I compare rows from 2 tables that have composite primary keys?

有人可以帮我比较 Oracle/PostgreSQL 中这两个表的行吗?

最佳答案

SELECT ...
FROM a
WHERE NOT EXISTS (
  SELECT *
  FROM b
  WHERE b.x = a.x AND b.y = a.y
  );

顺便说一句:这顶帽子与主键无关;它也适用于非键列。

关于sql - 根据组合键比较表的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858480/

相关文章:

postgresql - 在启动 docker 容器之前创建数据库

postgresql - 无法连接到 GCE 虚拟机上的 PostgreSQL 数据库

sql - 为另一个表中的每个 id 在表中插入行

sql - sum() 与 count()

sql - PostgreSQL:在同一查询中使用计算列

sql - 如何使用计算列来计算同一 View 中的另一列

python - 在centos上安装Python devel

mysql - 从 Xoops 数据库中计算并插入评论

sql - 获得额外的行 - 使用左连接加入 3 个表后

sql - Postgres : Simplify SQL query to get rid of subselects