快速比較兩張數據庫表的不同


有這樣一個需求:

數據庫表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