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 ,未达到设计需求