亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql一次將多條不同sql查詢結(jié)果并封裝到一個結(jié)果集的實現(xiàn)方法

 更新時間:2023年03月10日 14:05:15   作者:賣柴火的小伙子  
這篇文章主要給大家介紹了關(guān)于mysql一次將多條不同sql查詢結(jié)果并封裝到一個結(jié)果集的實現(xiàn)方法,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

前言

最近遇到一個統(tǒng)計查詢需求,要求一次性查詢多個統(tǒng)計信息,其中兩個查詢信息不在一個表中,也沒有業(yè)務(wù)關(guān)聯(lián),表中也沒有做連接處理。不考慮產(chǎn)品設(shè)計是否合理,完全是實際需求如此,需要一次性查詢出來返回給前端進(jìn)行展示,對于這種“非常規(guī)”的統(tǒng)計查詢平常肯定會遇見,感覺有點代表性,所以簡單記錄一下。希望對有相同需求的同學(xué)可以作為參考。

問題處理過程

簡單交代一下業(yè)務(wù)場景,為方便理解,對業(yè)務(wù)需求做了簡化處理。

現(xiàn)在有一個分銷活動,每個人都可以成為分銷人進(jìn)行分享活動,一旦有人通過分享的活動連接購買之后分銷人會有收益信息,當(dāng)然分銷活動商品也可以不通過分享鏈接而是直接購買,但是不會存在分銷收益一說。表結(jié)構(gòu)方面,所有的訂單都存入訂單表order中,對于存在分銷關(guān)系的會將分銷綁定信息(分銷人與被分銷人)記錄到record表中,不通過分銷直接購買的不會在record表中添加記錄?,F(xiàn)在要求統(tǒng)計一下當(dāng)天的訂單總數(shù)與分銷記錄總數(shù),假設(shè)當(dāng)天為2022.11.08。

如果是單獨統(tǒng)計計算很簡單,直接統(tǒng)計總數(shù)就可以:

統(tǒng)計當(dāng)天的總訂單數(shù):

SELECT COUNT(1) total_couut FROM order WHERE DATE_FORMAT(order_create_time,'%Y-%m-%d') = '2022-11-08'

統(tǒng)計當(dāng)天的分銷總的分銷記錄數(shù):

SELECT COUNT(1) record _count FROM record WHEREDATE_FORMAT(create_time,'%Y-%m-%d') = '2022-11-08'

但是如何將兩個不同的統(tǒng)計信息封裝到一個結(jié)果集中,這里提供一種處理方案,使用union all進(jìn)行并列查詢,然后進(jìn)行求和查詢。具體實現(xiàn)方式如下。

1.使用union all進(jìn)行并列查詢

為保證查詢出來的參數(shù)信息一致,查詢訂單總數(shù)時補(bǔ)充上分銷記錄總數(shù),查詢分銷記錄總數(shù)補(bǔ)充上訂單總數(shù),具體實現(xiàn)如下:

SELECT COUNT(1)  total_couut,0 record_count FROM order WHERE DATE_FORMAT(order_create_time,'%Y-%m-%d') = '2022-11-08'
union all 
SELECT 0 total_count,COUNT(1) record _count FROM record WHEREDATE_FORMAT(create_time,'%Y-%m-%d') = '2022-11-08'

查詢結(jié)果如下:

2.求和處理

現(xiàn)在已經(jīng)查詢出總訂單數(shù)和總分銷記錄數(shù),下面需要處理的是如何封裝到一個結(jié)果集中,處理的方式也很簡單,就是直接求和,因為對應(yīng)的字段值都為0,。具體實現(xiàn)如下:

select sum(t.total_count) total_count, sum(t.record_count) record_count from
(SELECT COUNT(1)  total_couut,0 record_count FROM order WHERE DATE_FORMAT(order_create_time,'%Y-%m-%d') = '2022-11-08'
union all 
SELECT 0 total_count,COUNT(1) record _count FROM record WHEREDATE_FORMAT(create_time,'%Y-%m-%d') = '2022-11-08') t

查詢結(jié)果如下:

至此問題解決,一條sql將多條無法進(jìn)行關(guān)聯(lián)的sql封裝到一個結(jié)果集中。

總結(jié)

到此這篇關(guān)于mysql一次將多條不同sql查詢結(jié)果并封裝到一個結(jié)果集實現(xiàn)的文章就介紹到這了,更多相關(guān)mysql多條sql查詢結(jié)果封裝到一個結(jié)果集內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論