(mysqlunion和union all区别) MySQL中union和union all区别
MySQL中的UNION
和UNION ALL
都是用来结合两个或更多SELECT语句的结果的操作符。它们的使用方式相同,但实际效果有所不同。
UNION
:它会去除结果集中的重复行。也就是说,如果两个SELECT语句产生的结果集有重复的行,那么UNION
只会选取其中的一行。UNION ALL
:它不会去除结果集中的重复行。也就是说,如果两个SELECT语句产生的结果集有重复的行,那么UNION ALL
会将它们都选取出来。
以下是MySQL中如何使用UNION
和UNION ALL
的例子:
假设我们有两个表,表A和表B,它们的结构如下:
表A:
id | name |
---|---|
1 | Tom |
2 | Jerry |
3 | Bob |
表B:
id | name |
---|---|
1 | Tom |
4 | Alice |
5 | James |
我们可以使用UNION
或UNION ALL
来结合两个表的结果集:
SELECT id, name FROM tableA
UNION
SELECT id, name FROM tableB
使用UNION
的结果集如下:
id | name |
---|---|
1 | Tom |
2 | Jerry |
3 | Bob |
4 | Alice |
5 | James |
你会看到,虽然表A和表B都有一行数据的name是Tom,但是在结果集中只有一行Tom。
如果我们使用UNION ALL
:
SELECT id, name FROM tableA
UNION ALL
SELECT id, name FROM tableB
使用UNION ALL
的结果集如下:
id | name |
---|---|
1 | Tom |
2 | Jerry |
3 | Bob |
1 | Tom |
4 | Alice |
5 | James |
你会看到在结果集中有两行Tom,也就是说UNION ALL
没有去除结果集中的重复行。
所以,使用UNION
还是UNION ALL
取决于你是否需要在结果集中去除重复的行。
(redisson trylock) redisson.tryLock()参数的使用及理解 Redisson Lock 的 tryLock() 方法 全网首发(图文详解1)
(aida64绿色) AIDA64 Extreme Edition(硬件检测工具) v7.00.6700 绿色至尊版 专业硬件检测工具 AIDA64 Extreme Edition 全网首发(图文详解1)