mysql union_Mysql union和union all用法
1: 什么時(shí)候用union和union all ?
我們經(jīng)常會碰到這樣的應(yīng)用,兩個(gè)表的數(shù)據(jù)按照一定的查詢條件查詢出來以后,需要將結(jié)果合并到一起顯示出來,這個(gè)時(shí)候
就需要用到union和union all關(guān)鍵字來實(shí)現(xiàn)這樣的功能,union和union all的主要區(qū)別是union all是把結(jié)果集直接合并在一起,而
union 是將union all后的結(jié)果鏡像一次distinct,去除重復(fù)的記錄后的結(jié)果。
看下面的例子:
查詢一:
查詢二:
兩個(gè)結(jié)果集進(jìn)行union all為(直接將兩個(gè)查詢結(jié)果集合并):
兩個(gè)結(jié)果集鏡像union 運(yùn)算結(jié)果為(兩個(gè)結(jié)果集合并后進(jìn)行去重/distinct):
總結(jié): 在xwwd項(xiàng)目中由于還款計(jì)劃表(tb_laon_repayment)數(shù)據(jù)量巨大(數(shù)量2000萬),
查詢一條借款的還款計(jì)劃時(shí)候巨慢,當(dāng)時(shí)為了解決查詢慢問題就建立了一張還款計(jì)劃
備份表(tb_loan_repayment_his),將還款計(jì)劃表tb_loan_repayment中的已經(jīng)結(jié)清
的借款的還款計(jì)劃數(shù)據(jù)導(dǎo)出1000萬到了還款計(jì)劃備份表tb_loan_repayment_his中,
這樣做解決了還款計(jì)劃表tb_loan_repayment中數(shù)據(jù)過大導(dǎo)致查看借款loan詳情時(shí)展示
查詢該筆借款loan的還款計(jì)劃查詢卡死的情況。? ? 后來由于項(xiàng)目需要需要查詢備份表中的數(shù)據(jù),
于是對內(nèi)管查看借款詳情接口進(jìn)行了優(yōu)化升級。 獲取具體某一條還款計(jì)劃的時(shí)候首先查詢
還款計(jì)劃表tb_laon_repayment如果沒有再去查詢還款計(jì)劃備份表tb_loan_repayment_his.
同時(shí)“借款管理”菜單中是去分頁查詢所有還款計(jì)劃,為了數(shù)據(jù)完整性,
這里就采用了union聯(lián)合查詢tb_loan_repayment,和tb_tb_repayment_his表。
總結(jié)
以上是生活随笔為你收集整理的mysql union_Mysql union和union all用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言弧长,在C ++中从给定角度的弧长
- 下一篇: mysql添加完全一样的一条记录_MYS