国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql聯合查詢UNION和UNION ALL的使用介紹

2024-07-24 12:47:29
字體:
來源:轉載
供稿:網友

一、UNION和UNION ALL的作用和語法

UNION 用于合并兩個或多個 SELECT 語句的結果集,并消去表中任何重復行。
UNION 內部的 SELECT 語句必須擁有相同數量的列,列也必須擁有相似的數據類型。
同時,每條 SELECT 語句中的列的順序必須相同.
SQL UNION 語法:

復制代碼 代碼如下:
SELECT column_name FROM table1
UNION
SELECT column_name FROM table2

注釋:默認地,UNION 操作符選取不同的值。如果允許重復的值,請使用 UNION ALL。
當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行
SQL UNION ALL 語法
復制代碼 代碼如下:
SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2

注釋:另外,UNION 結果集中的列名總是等于 UNION 中第一個 SELECT 語句中的列名。
注意:1、UNION 結果集中的列名總是等于第一個 SELECT 語句中的列名
2、UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同


二、union的用法及注意事項

union:聯合的意思,即把兩次或多次查詢結果合并起來。
要求:兩次查詢的列數必須一致
推薦:列的類型可以不一樣,但推薦查詢的每一列,想對應的類型以一樣
可以來自多張表的數據:多次sql語句取出的列名可以不一致,此時以第一個sql語句的列名為準。
如果不同的語句中取出的行,有完全相同(這里表示的是每個列的值都相同),那么union會將相同的行合并,最終只保留一行。也可以這樣理解,union會去掉重復的行。
如果不想去掉重復的行,可以使用union all。
如果子句中有order by,limit,需用括號()包起來。推薦放到所有子句之后,即對最終合并的結果來排序或篩選。
如:

復制代碼 代碼如下:
(select * from a order by id) union (select * from b order id);

在子句中,order by 需要配合limit使用才有意義。如果不配合limit使用,會被語法分析器優化分析時去除。

三、學習例子

下面的例子中使用的原始表:
Employees_China:

復制代碼 代碼如下:
E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

Employees_USA:
復制代碼 代碼如下:
E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

使用 UNION 命令實例

列出所有在中國和美國的不同的雇員名:

復制代碼 代碼如下:
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

結果:
復制代碼 代碼如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 紫云| 镇宁| 赣榆县| 太原市| 于都县| 酒泉市| 和龙市| 辽中县| 小金县| 柳河县| 信宜市| 光山县| 邢台县| 皮山县| 郑州市| 石柱| 西安市| 白玉县| 呼伦贝尔市| 西畴县| 泸溪县| 健康| 陈巴尔虎旗| 武功县| 司法| 丹凤县| 玉树县| 介休市| 卓资县| 滦平县| 呼图壁县| 黑山县| 屏南县| 海门市| 浦北县| 天柱县| 阿拉善右旗| 宁津县| 仁怀市| 山阳县| 吐鲁番市|