日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

mysql中UNION ALL用法

系統(tǒng) 2161 0

MYSQL中的UNION

UNION在進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,所以在表鏈接后會(huì)對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算,刪除重復(fù)的記錄再返回結(jié)果。

舉例說(shuō)明:

select * from table1 union select * from table2

這個(gè)SQL在運(yùn)行時(shí)先取出兩個(gè)表的結(jié)果,再用排序空間進(jìn)行排序刪除重復(fù)的記錄,最后返回結(jié)果集,如果表數(shù)據(jù)量大的話可能會(huì)導(dǎo)致用磁盤進(jìn)行排序。?

MySQL中的UNION ALL UNION ALL只是簡(jiǎn)單的將兩個(gè)結(jié)果合并后就返回。這樣,如果返回的兩個(gè)結(jié)果集中有重復(fù)的數(shù)據(jù),那么返回的結(jié)果集就會(huì)包含重復(fù)的數(shù)據(jù)了。

舉例說(shuō)明:

select * from table1 union all select * from table2
注: 使用 UNION 時(shí) 前一個(gè) select column的個(gè)數(shù)要等于后一個(gè)select column的個(gè)數(shù) 如: table1: (id,createDate,lastUpdateDate,desc,num,hashCode), ???? table2: (id,createDate,lastUpdateDate,desc)

如果現(xiàn)在使用: select * from table1 UNION ALL select * from table2 則是不會(huì)成功的, 數(shù)據(jù)庫(kù)為報(bào): Error The used SELECT statements have a different number of columns

這是提示查詢的兩張表的字段不統(tǒng)一,如果table1比table2的字段內(nèi)容多,可以使用空字符串來(lái)代替

select id,createDate,lastUpdateDate,desc,num,hashCode from table1 UNION ALL select id,createDate,lastUpdateDate,desc,'','' from table2?

如果里面有不想要的,千萬(wàn)要記住前面查詢內(nèi)容要和后面查詢內(nèi)容的字段個(gè)數(shù)要一樣,前面你查詢4個(gè),后面也要相應(yīng)的放4個(gè),這樣就不會(huì)提示參數(shù)數(shù)量不同的錯(cuò)誤了。 mysql中UNION ALL用法 - 小桃子 - 小桃子

?

其實(shí)稍稍修改一下就可以了 對(duì)于 'select id,createDate,desc,hasCode from table1' 可以任意選擇4個(gè)field

?

從效率上說(shuō),UNION ALL 要比UNION快很多,所以,如果可以確認(rèn)合并的兩個(gè)結(jié)果集中不包含重復(fù)的數(shù)據(jù)的話,那么就使用UNION ALL。

?

如果遇到兩張表數(shù)據(jù)不同來(lái)集合查詢,可以使用union all這個(gè)函數(shù)進(jìn)行操作

SELECT COUNT(c.a) ? FROM ( (SELECT UID a,ID,SERIAL,ParkName,CardNO,ScoreRealPay,PayFlag,PayType,Createtime FROM cp_consumption_record WHERE UID=761 AND PayFlag=1? ORDER BY Createtime DESC) UNION ALL (SELECT UID a,CpResID,CpParkID,ParkSERIAL,CarCode,Price,BusinessType,CardNO,CreateDate FROM cp_reservation WHERE UID=761 AND BusinessType IN(1,2,3) ORDER BY CreateDate DESC) ) c

這是查詢結(jié)果集共有多少條數(shù)據(jù),

如果還有查詢條件,直接在c后面添加就可以,比如按照時(shí)間進(jìn)行查詢

SELECT c.UID,c.ScoreRealPay,c.PayFlag,c.PayType? FROM ( (SELECT UID AS UID,ID AS ID,SERIAL AS SERIAL ,ParkName AS ParkName,CardNO CardNO,ScoreRealPay ScoreRealPay,PayFlag PayFlag,PayType PayType,Createtime Createtime FROM cp_consumption_record WHERE UID=761 AND PayFlag=1? ORDER BY Createtime DESC) UNION ALL (SELECT UID a,CpResID,CpParkID,ParkSERIAL,CarCode,Price,BusinessType,CardNO,CreateDate FROM cp_reservation WHERE UID=761 AND BusinessType IN(1,2,3) ORDER BY CreateDate DESC) ) c ORDER BY Createtime DESC/ASC

這里強(qiáng)調(diào)一下,你要按照什么樣的條件進(jìn)行查詢時(shí),要分別在select子查詢中添加上條件,最后在按照統(tǒng)一的時(shí)間倒序或者正序

mysql中UNION ALL用法


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 岐山县| 蓝山县| 沁阳市| 柳州市| 金乡县| 普格县| 五莲县| 彭阳县| 垣曲县| 应用必备| 黄梅县| 镇雄县| 阿鲁科尔沁旗| 喀什市| 类乌齐县| 南丹县| 多伦县| 电白县| 南宫市| 三门峡市| 大竹县| 和静县| 天全县| 于田县| 阿拉善左旗| 镇江市| 大足县| 古交市| 中方县| 彰化县| 新乐市| 黔西县| 福贡县| 沅陵县| 永安市| 高密市| 泾源县| 铜梁县| 龙里县| 神农架林区| 绥滨县|