MySQL UNION运算符
时间:2019-02-04 12:52:26 来源:igfitidea点击:
MySQL UNION运算符用于合并2个或更多SELECT语句的结果集。它将删除各种SELECT语句之间的重复行。
UNION操作符中的每个SELECT语句必须在结果集中具有相同数量的字段(并且字段的数据类型相似即能够相互转换)。
语法
MySQL中UNION运算符的语法为:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [DISTINCT | ALL]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
参数 | 说明 |
---|---|
expression1,expression2,... expression_n | 希望查找的字段或计算式。 |
tables | 数据库表 |
WHERE conditions | 可选的。挑选记录时必须满足的条件。 |
DISTINCT | 可选的。从结果集中删除重复项,默认就会删除重复项。 |
ALL | 可选的。 在结果集中不删除重复项 |
说明
- 两个SELECT语句中expression的数量必须相等。
- 来自UNION运算符的第一个SELECT语句的列名用作结果集的列名。
MySQL UNION运算符示例
示例-只返回一个字段
SELECT supplier_id FROM suppliers UNION SELECT supplier_id FROM order_details;
从多个SELECT语句中返回一个字段(两个字段具有相同的数据类型):
示例-使用ORDER BY对合并集进行排序
MySQL UNION运算符可以使用ORDER BY子句对查询结果进行排序。
SELECT supplier_id, supplier_name FROM suppliers WHERE supplier_id <= 500 UNION SELECT company_id, company_name FROM companies WHERE company_name = 'Apple' ORDER BY 2;
在这个例子中,由于两个SELECT语句之间的列名不同,所以在ORDER BY子句中使用位置进行排序更好。即ORDER BY 2表示按照结果集中第2列进行排序。supplier_name / company_name字段位于结果集中的第2位置。