在SQL中,你可以使用UNION
或UNION ALL
操作符来合并两个或多个SELECT
语句的结果集。这些操作符允许你将来自不同查询的数据合并到一个结果集中。
UNION
操作符用于合并两个或多个SELECT
语句的结果集,并且自动去除重复的记录。
示例:
假设我们有两个表,一个是Customers
,另一个是Suppliers
,它们都有City
和Country
字段。我们想要获取所有位于巴黎的客户和供应商。
SELECT City, Country FROM Customers WHERE City = 'Paris'
UNION
SELECT City, Country FROM Suppliers WHERE City = 'Paris';
这个查询会返回一个不包含重复记录的结果集。
UNION ALL
操作符与UNION
类似,但它不会去除重复的记录。如果你的数据中可能包含重复项,并且你想要保留这些重复项,那么应该使用UNION ALL
。
示例:
使用上面的例子,如果我们想要保留重复的记录:
SELECT City, Country FROM Customers WHERE City = 'Paris'
UNION ALL
SELECT City, Country FROM Suppliers WHERE City = 'Paris';
UNION
和UNION ALL
要求每个SELECT
语句中的列数必须相同,并且对应列的数据类型必须兼容。UNION
会对结果集进行排序和去重,这可能会影响查询性能。如果不需要去重,使用UNION ALL
通常会更快。UNION
或UNION ALL
时,每个SELECT
语句后面都应该跟一个分号(;
),表示该语句结束。UNION
。UNION ALL
。请注意,上述链接可能会指向特定数据库系统的文档,但UNION
和UNION ALL
的概念在大多数SQL数据库系统中都是通用的。
云+社区技术沙龙[第17期]
Elastic 实战工作坊
Elastic 实战工作坊
云原生正发声
Elastic 中国开发者大会
T-Day
云+社区技术沙龙[第21期]
Elastic 中国开发者大会
领取专属 10元无门槛券
手把手带您无忧上云