MySQL合并查詢結(jié)果的實現(xiàn)
利用 UNION 關(guān)鍵字,可以給出多條 SELECT 語句,并將它們的結(jié)果組合成單個結(jié)果集。合并 時,兩個表對應的列數(shù)和數(shù)據(jù)類型必須相同。各個 SELECT 語句之間使用 UNION 或 UNION ALL 關(guān)鍵字分隔。UNION 不使用關(guān)鍵字 ALL,執(zhí)行的時候刪除重復的記錄,所有返回的行都是唯一的; 使用關(guān)鍵字 ALL 的作用是不刪除重復行也不對結(jié)果進行自動排序?;菊Z法格式如下:
SELECT column,... FROM table1 UNION [ALL] SELECT column,... FROM table2
查詢所有價格小于 9 的水果的信息,查詢 s_id 等于 101 和 103 所有的水果的信息, 使用 UNION 連接查詢結(jié)果,SQL 語句如下:
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 將多個 SELECT 語句的結(jié)果組合成一個結(jié)果集合??梢苑珠_查看每個 SELECT 語句的結(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);

由分開查詢的結(jié)果可以看到,第 1 條 SELECT 語句查詢價格小于 9 的水果,第 2 條 SELECT 語句查詢供應商 101 和 103 提供的水果。使用 UNION 將兩條 SELECT 語句分隔開,執(zhí)行完畢之后 把輸出結(jié)果組合成單個的結(jié)果集,并刪除重復的記錄。
使用 UNION ALL 包含重復的行,在前面的例子中,分開查詢時,兩個返回結(jié)果中有相同的 記錄。UNION 從查詢結(jié)果集中自動去除了重復的行,如果要返回所有匹配行,而不進行刪除,可 以使用 UNION ALL。
查詢所有價格小于 9 的水果的信息,查詢 s_id 等于 101 和 103 的所有水果的信息, 使用 UNION ALL 連接查詢結(jié)果,SQL 語句如下:
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 語句返回的記錄數(shù)之和,連接查詢結(jié)果 并沒有去除重復的行。
提 示 :UNION 和 UNION ALL 的區(qū)別:使用 UNION ALL 的功能是不刪除重復行,加上 ALL 關(guān) 鍵字語句執(zhí)行時所需要的資源少,所以盡可能地使用它,因此知道有重復行但是想保留 這些行,確定查詢結(jié)果中不會有重復數(shù)據(jù)或者不需要去掉重復數(shù)據(jù)的時候,應當使用 UNION ALL 以提高查詢效率。
到此這篇關(guān)于MySQL合并查詢結(jié)果的實現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL合并查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 隨機查詢數(shù)據(jù)與隨機更新數(shù)據(jù)實現(xiàn)代碼
以下的文章主要講述的是MySQL隨機查詢數(shù)據(jù)、MySQL隨機更新數(shù)據(jù)的實際應用以及對MySQL隨機查詢數(shù)據(jù)、MySQL隨機更新數(shù)據(jù)的實際應用代碼的描述,以下就是文章的主要內(nèi)容描述,望你會有所收獲。2010-06-06
MySQL 字符串截取相關(guān)函數(shù)小結(jié)
本文是腳本之家小編給大家收藏整理的關(guān)于MySQL 字符串截取相關(guān)函數(shù)小結(jié),非常不錯,具有參考借鑒價值,需要的朋友參考下吧2018-04-04
mysql高效查詢left join和group by(加索引)
這篇文章主要給大家介紹了關(guān)于mysql高效查詢left join和group by,這個的前提是加了索引,以及如何在MySQL高效的join3個表 的相關(guān)資料,需要的朋友可以參考下2021-06-06
mysql命令導出表結(jié)構(gòu)和數(shù)據(jù)的操作方法
在日常使用中,我們經(jīng)常需要對數(shù)據(jù)庫進行備份和復制,因此必須了解如何導出表結(jié)構(gòu)和表數(shù)據(jù),以下是使用MySQL命令導出表結(jié)構(gòu)和表數(shù)據(jù)的方法,感興趣的朋友一起看看吧2023-11-11
MySQL入門教程(五)之表的創(chuàng)建、修改和刪除
MySQL 為關(guān)系型數(shù)據(jù)庫(Relational Database Management System), 本文給大家介紹MySQL入門教程(五)之表的創(chuàng)建、修改和刪除,需要的朋友一起學習吧2016-04-04

