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


有这样一个需求:

数据库表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/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM