Mysql union和union all用法


1: 什么時候用union和union all ?

      我們經常會碰到這樣的應用,兩個表的數據按照一定的查詢條件查詢出來以后,需要將結果合並到一起顯示出來,這個時候

就需要用到union和union all關鍵字來實現這樣的功能,union和union all的主要區別是union all是把結果集直接合並在一起,而

union 是將union all后的結果鏡像一次distinct,去除重復的記錄后的結果。   

    看下面的例子:

查詢一:

 

 

查詢二:

 

 

 

兩個結果集進行union all為(直接將兩個查詢結果集合並):

 

 兩個結果集鏡像union 運算結果為(兩個結果集合並后進行去重/distinct):

 

 

 

總結: 在xwwd項目中由於還款計划表(tb_laon_repayment)數據量巨大(數量2000萬),

查詢一條借款的還款計划時候巨慢,當時為了解決查詢慢問題就建立了一張還款計划

備份表(tb_loan_repayment_his),將還款計划表tb_loan_repayment中的已經結清

的借款的還款計划數據導出1000萬到了還款計划備份表tb_loan_repayment_his中,

這樣做解決了還款計划表tb_loan_repayment中數據過大導致查看借款loan詳情時展示

查詢該筆借款loan的還款計划查詢卡死的情況。    后來由於項目需要需要查詢備份表中的數據,

於是對內管查看借款詳情接口進行了優化升級。 獲取具體某一條還款計划的時候首先查詢

還款計划表tb_laon_repayment如果沒有再去查詢還款計划備份表tb_loan_repayment_his.

同時“借款管理”菜單中是去分頁查詢所有還款計划,為了數據完整性,

這里就采用了union聯合查詢tb_loan_repayment,和tb_tb_repayment_his表。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM