Mysql中Union和Union all精解

本文详细解析了Mysql中的Union和Union All操作符,包括它们的基本概念、语法要求和实战案例。Union用于合并多个SELECT语句的结果集,而Union All则包含所有匹配的行,不移除重复项。文章通过具体SQL示例展示了两者在处理重复行上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MysqlUnionUnion all精解

1. Union
1.1 什么是Union?

UNION is used to combine the result from multiple SELECT statements into a single result set.

1.2 语法要求

The column names from the first SELECT statement are used as the column names for the results
returned.

第一个select语句的列名将会作为结果集的列名返回

Selected columns listed in corresponding positions of each SELECT statement should have the
same data type.

每个select语句选择的对应的列名应该有一个相同的数据格式

The default behavior for UNION is that duplicate rows are removed from the result. With the
optional ALL keyword, duplicate-row removal does not occur and the result includes all matching rows from
all the SELECT statements

Union默认的行为会从结果集中去除相同的行。如果带上可选的ALL关键字,移除重复行这个操作不会发生,并且结果集包含所有的 select语句。

2. 实战案例
2.1 union
  • sql
select 
a from 
(
	select 
	1 as a
)t
union 
select 1 as a
;
  • 执行结果
+---+
| a |
+---+
| 1 |
+---+
1 row in set (0.03 sec)

可以看到结果集中只有一行。

2.2 union all
  • sql
select 
a from 
(
	select 
	1 as a
)t
union all
select 1 as a
;
  • 执行结果
+---+
| a |
+---+
| 1 |
| 1 |
+---+
2 rows in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说文科技

看书人不妨赏个酒钱?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值