十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
今天小編給大家分享一下MySQL如何合并查詢結(jié)果的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
創(chuàng)新互聯(lián)科技有限公司專(zhuān)業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供資陽(yáng)托管服務(wù)器,高防主機(jī),成都IDC機(jī)房托管,成都主機(jī)托管等互聯(lián)網(wǎng)服務(wù)。
利用 UNION 關(guān)鍵字,可以給出多條 SELECT 語(yǔ)句,并將它們的結(jié)果組合成單個(gè)結(jié)果集。合并 時(shí),兩個(gè)表對(duì)應(yīng)的列數(shù)和數(shù)據(jù)類(lèi)型必須相同。各個(gè) SELECT 語(yǔ)句之間使用 UNION 或 UNION ALL 關(guān)鍵字分隔。UNION 不使用關(guān)鍵字 ALL,執(zhí)行的時(shí)候刪除重復(fù)的記錄,所有返回的行都是唯一的; 使用關(guān)鍵字 ALL 的作用是不刪除重復(fù)行也不對(duì)結(jié)果進(jìn)行自動(dòng)排序。基本語(yǔ)法格式如下:
SELECT column,... FROM table1 UNION [ALL] SELECT column,... FROM table2
查詢所有價(jià)格小于 9 的水果的信息,查詢 s_id 等于 101 和 103 所有的水果的信息, 使用 UNION 連接查詢結(jié)果,SQL 語(yǔ)句如下:
SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103);
合并查詢結(jié)果如下:
如前所述,UNION 將多個(gè) SELECT 語(yǔ)句的結(jié)果組合成一個(gè)結(jié)果集合??梢苑珠_(kāi)查看每個(gè) SELECT 語(yǔ)句的結(jié)果:
SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0;
SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103);
由分開(kāi)查詢的結(jié)果可以看到,第 1 條 SELECT 語(yǔ)句查詢價(jià)格小于 9 的水果,第 2 條 SELECT 語(yǔ)句查詢供應(yīng)商 101 和 103 提供的水果。使用 UNION 將兩條 SELECT 語(yǔ)句分隔開(kāi),執(zhí)行完畢之后 把輸出結(jié)果組合成單個(gè)的結(jié)果集,并刪除重復(fù)的記錄。
使用 UNION ALL 包含重復(fù)的行,在前面的例子中,分開(kāi)查詢時(shí),兩個(gè)返回結(jié)果中有相同的 記錄。UNION 從查詢結(jié)果集中自動(dòng)去除了重復(fù)的行,如果要返回所有匹配行,而不進(jìn)行刪除,可 以使用 UNION ALL。
查詢所有價(jià)格小于 9 的水果的信息,查詢 s_id 等于 101 和 103 的所有水果的信息, 使用 UNION ALL 連接查詢結(jié)果,SQL 語(yǔ)句如下:
SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION ALL SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103);
查詢結(jié)果如下:
由結(jié)果可以看到,這里總的記錄數(shù)等于兩條 SELECT 語(yǔ)句返回的記錄數(shù)之和,連接查詢結(jié)果 并沒(méi)有去除重復(fù)的行。
提 示 :UNION 和 UNION ALL 的區(qū)別:使用 UNION ALL 的功能是不刪除重復(fù)行,加上 ALL 關(guān) 鍵字語(yǔ)句執(zhí)行時(shí)所需要的資源少,所以盡可能地使用它,因此知道有重復(fù)行但是想保留 這些行,確定查詢結(jié)果中不會(huì)有重復(fù)數(shù)據(jù)或者不需要去掉重復(fù)數(shù)據(jù)的時(shí)候,應(yīng)當(dāng)使用 UNION ALL 以提高查詢效率。
以上就是“MySQL如何合并查詢結(jié)果”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。