我的工作是刷新需要帮助的查找表数据。我有2个数据表,一个是现有版本(表1),另一个是新版本(表2)。每个表的主键都是复合键。我知道每一行有不同的行数,我需要找出不同之处。假设组合主键的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/