快速比较两张数据库表的不同

有这样一个需求:

数据库表A里面存入的是原始数据,原始数据经过一系列的大数据处理之后,把处理之后的数据传给了应用层的接口,最终展现到网页上。

而为了测试这些环节有没有bug,比如精度丢失,数据类型错误之类的,我们要从接口获取数据,然后把获取到的数据存入数据库表B。

最后,比较数据库表B和A里面的数据有何不同。

下面的SQL语句能够达到这个目的,而且简单、快速、高效,不需要写JAVA代码。

SELECT id,name,class FROM(SELECT id,name,class FROM t1 AS a
UNION ALL
SELECT id,name,class FROM t2 AS b
)temp
GROUP BY id,name,class
HAVING count(*)=1
ORDER BY id;

我们知道一个表里面有很多列,上面的语句可以比较任意列。

以下是比较结果:

以下是表t1和表t2

t1

t2

参考于:

https://weblogs.sqlteam.com/jeffs/2004/11/10/2737/

原文地址:https://www.cnblogs.com/majestyking/p/11506227.html