Mysql union 和 union all 区别 实例 使用场景

Mysql union 和 union all 区别 需求分析

场景1:

查询两张表 所有信息记录 ——> 不包括重复数据

table 1

id  name
1  张三
2  李四
3  王五

table 2

id  name
1  张三
2  李四
3  王五

Sql 语句

select * from table1 
union 
select * from table2

结果

id  name
1   张三
2   李四
3   王五

解析: 由于 union 会 将结果去重并排序,相对于 union all 性能消耗大

场景2:

查询连接两张表所有数据 ——> 包括重复数据 table 1

id  name
1  张三
2  李四
3  王五

table 2

id  name
1  张三
2  李四
3  王五

Sql 语句

select * from table1 
union all
select * from table2

结果

id  name
1   张三
2   李四
3   王五 
1   张三
2   李四
3   王五

需求分析

问:查询两张表数据中姓名为‘张三’ 学生 共出现的次数?

使用 union 去重结果排序后 ——> 数据结果为1 ,未达到设计需求

经验分享 程序员 微信小程序 职场和发展