有这样一个需求:
数据库表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
参考于: