久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL查詢數據之合并查詢結果的案例

178次閱讀
沒有評論

共計 3031 個字符,預計需要花費 8 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下 MySQL 查詢數據之合并查詢結果的案例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

.

利用 union 關鍵字,可以給出多條 select 語句,并將它們的結果組合成單個結果集。合并時,兩個表對應的列數和數據類型必須相同。各個 select 語句之間使用 union 或 union all 關鍵字分隔。

union 不使用關鍵字 all,執行的時候刪除重復的記錄,所有返回的行都是唯一的;使用關鍵字 all 的作用是不刪除重復行也不對結果進行自動排序。
基本語法格式為:

select column,...from table1union [all]select column,... from table2

【例 1】查詢所有價格小于 9 的水果的信息,查詢 s_id 等于 101 和 103 所有的水果的信息,使用 union 連接查詢結果,SQL 語句如下:

mysql  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);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+15 rows in set (0.06 sec)

union 將多個 select 語句的結果組合成一個結果集合。可以分開查看每個 select 語句的結果:

mysql  select s_id,f_name,f_price -  from fruits -  where f_price   9.0;+------+---------+---------+| s_id | f_name | f_price |+------+---------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 |+------+---------+---------+10 rows in set (0.00 sec)mysql  select s_id,f_name,f_price -  from fruits -  where s_id in(101,103);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+5 rows in set (0.00 sec)

由分開查詢結果可以看到,第 1 條 select 語句查詢價格小于 9 的水果,第 2 條 select 語句查詢供應商 101 和 103 提供的水果。

使用 union 將兩條 select 語句分隔開,執行完畢之后把輸出結果組合成單個的結果集,并刪除重復的記錄。

使用 union all 包含重復的行。union 從查詢結果集中自動去除了重復的行,如果要返回所有匹配的行,而不進行刪除,可以用 union all。

【例 2】查詢所有價格小于 9 的水果的信息,查詢 s_id 等于 101 和 103 的所有水果的信息,使用 union all 連接查詢結果,SQL 語句如下:

mysql  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);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+15 rows in set (0.00 sec)

可以看到,這里總的記錄等于兩條 select 語句返回的記錄數之和,連接查詢結果并沒有去除重復的行。

union 和 union all 的區別:

使用 union all 的功能是不刪除重復行,all 關鍵字語句執行時所需要的資源少,所以盡可能的使用它。

確定查詢結果中不會有重復數據或者不需要去掉重復數據的時候,應當盡量使用 uninon all 以提高查詢效率。

以上是“MySQL 查詢數據之合并查詢結果的案例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計3031字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 克拉玛依市| 甘孜| 石景山区| 砚山县| 忻城县| 合川市| 井陉县| 航空| 虹口区| 福建省| 宁海县| 敦煌市| 思茅市| 永仁县| 宁安市| 札达县| 桃源县| 凤城市| 岳池县| 溧水县| 昌乐县| 宁强县| 秦皇岛市| 虞城县| 蓬溪县| 昔阳县| 方正县| 象山县| 平潭县| 连江县| 海安县| 定陶县| 莱芜市| 日照市| 梨树县| 昌江| 大理市| 宿迁市| 略阳县| 茶陵县| 乌拉特后旗|