如何获取两种重复表(sql)之间的差异



Prolog: 我在两个不同的数据库中有两个表,一个是另一个的更新版本。例如,我们可以想象,一年前,我在新数据库中复制了表1(比如表2),从那时起,我开始处理表2,从未更新表1。

我想比较这两个表,以获得在这段时间内增长的差异(表保留了结构,因此比较有意义)

我的方法是创建第三个表,在其中我想复制表1和表2,然后计算每个条目的重复次数。

在我看来,这添加到一个新的属性中,该属性为每个条目指定他所来自的表将完成这项工作。

问题: 将两个表复制到第三个表中我得到了一个(明显的)错误,即在唯一或主键成本中有两个重复的键值。

我怎样才能绕过错误,或者怎样才能更好地完成同样的工作?任何想法都值得赞赏

如果A和B具有相同的结构,这样的操作应该可以随心所欲,否则只需选择并重命名要面对的列。。。。

SELECT 
*
FROM   
B
WHERE NOT EXISTS (SELECT * FROM A)

如果NOT EXISTS在DBMS中不起作用,您还可以使用左外部联接来比较行-列的值。

SELECT 
A.* 
from
A left outer join B
on A.col = B.col and ....

最新更新