UNION

收藏626

阅读2628

更新时间2025-08-20

MySQL UNION 运算符

UNION 运算符用于组合两个或多个 SELECT 语句的结果集。

  • UNION 中的每个 SELECT 语句必须具有相同的列数
  • 列还必须具有相似的数据类型
  • 每个 SELECT 语句中的列也必须是相同的顺序

UNION 语法

SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;

UNION ALL 语法

UNION 运算符默认只选择不同的值。 要允许重复值,请使用 UNION ALL:

SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2;

注意:结果集中的列名通常等于第一个 SELECT 语句中的列名。


演示数据库

在本教程中,我们将使用著名的 Northwind 示例数据库。

以下是"Customers"表中的选择:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico

从"Suppliers"表中选择:

SupplierID SupplierName ContactName Address City PostalCode Country
1 Exotic Liquid Charlotte Cooper 49 Gilbert St. London EC1 4SD UK
2 New Orleans Cajun Delights Shelley Burke P.O. Box 78934 New Orleans 70117 USA
3 Grandma Kelly's Homestead Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA


SQL UNION 示例

以下 SQL 语句从"客户"和"供应商"表中返回城市(仅不同的值):

实例

SELECT City FROM CustomersUNIONSELECT City FROM SuppliersORDER BY City;
»

注意: 如果某些客户或供应商拥有相同的城市,则每个城市只会列出一次,因为 UNION 只选择不同的值。 使用 UNION ALL 也可以选择重复值!


SQL UNION ALL 示例

以下 SQL 语句从"客户"和"供应商"表中返回城市(也有重复值):

实例

SELECT City FROM CustomersUNION ALLSELECT City FROM Suppliers ORDER BY City;
»

SQL UNION 与 WHERE

以下 SQL 语句从"客户"和"供应商"表中返回德国城市(只有不同的值):

实例

SELECT City, Country FROM CustomersWHERE Country='Germany'UNION SELECT City, Country FROM SuppliersWHERE Country='Germany'ORDER BY City;
»

SQL UNION ALL 与 WHERE

以下 SQL 语句从"客户"和"供应商"表中返回德国城市(也有重复值):

实例

SELECT City, Country FROM CustomersWHERE Country='Germany'UNION ALL SELECT City, Country FROM SuppliersWHERE Country='Germany'ORDER BY City;
»

另一个 UNION 示例

以下 SQL 语句列出了所有客户和供应商:

实例

SELECT 'Customer' AS Type, ContactName, City, CountryFROM Customers UNIONSELECT 'Supplier', ContactName, City, CountryFROM Suppliers;
»

注意上面的"AS Type",它是一个别名。 SQL 别名 用于给表或列一个临时名称。 别名仅在查询期间存在。 因此,我们在这里创建了一个名为"Type"的临时列,其中列出了联系人是"客户"还是"供应商"。

相关

视频

RELATED VIDEOS

更多

免费

MySQLi面向过程极速入门
中级 MySQLi面向过程极速入门

127669次学习

收藏

免费

MySQLi面向对象编程极速入门

免费

MySQL权威开发指南(教程)

免费

MySQL高级进阶视频教程
高级 MySQL高级进阶视频教程

122147次学习

收藏

免费

肖文吉Oracle视频教程
初级 肖文吉Oracle视频教程

72226次学习

收藏

免费

魔乐科技oracle视频教程
初级 魔乐科技oracle视频教程

54966次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.4万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71.1万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.8万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

34万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号