UNION 和 UNION ALL 作用

联合查询 union ,union all

对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集。

select 字段列表 from 表A ,,,

select 字段列表 from 表B .....

复制代码
查询语句1
UNION
查询语句2;

查询语句1
UNION ALL
查询语句2;

1. 最简单示例(合并两个部门查询)

sql

复制代码
select dept.id, dept.name from dept where dept.id = 1
union
select dept.id, dept.name from dept where dept.id = 2;

sql

复制代码
select dept.id, dept.name from dept where dept.id = 1
union all
select dept.id, dept.name from dept where dept.id = 2;

2. 合并不同表的结构相同数据

比如把员工姓名 和 部门姓名 放一列展示

sql

复制代码
select emp.name from emp
union
select dept.name from dept;

sql

复制代码
select emp.name from emp
union all
select dept.name from dept;

3. 多表查询 + UNION 组合

sql

复制代码
select emp.name, dept.name
from emp
inner join dept
on emp.dept_id = dept.id
where dept.name = '研发部'

union

select emp.name, dept.name
from emp
inner join dept
on emp.dept_id = dept.id
where dept.name = '市场部';
复制代码
-- 查询薪资<5000 并且年龄大于50 的员工。
select * from emp33 where salary <5000 and age>50;


-- 查询薪资低于5000 的员工,和年龄大于50 岁的员工的全部查询出来
select * from emp33 where salary <5000
union all
select * from emp33 where age>50;

union all有重复 会将全部的数据直接合并在一起,

union 会对合并之后的数据去重。

相关推荐
10年前端老司机41 分钟前
Milvus 8种检索能力实践
数据库·python·agent
Decay__1 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
freejackman1 小时前
【实战三】撕开脱敏盲区:深度解析 CASE WHEN 与窗口函数血缘
大数据·数据库·sql
codigger3 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员
倔强的石头_3 小时前
集中式与分布式怎么选?我把手头11套系统重新过了一遍秤
数据库
挖掘狂人3 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员
Rainmicro4 小时前
【无标题】
java·数据库·算法
Thanks_ks4 小时前
MySQL 的索引是什么?用图书馆的目录讲明白
数据库·sql·mysql·索引·联合索引·explain·慢查询优化
CoderYanger10 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
wafrdggh13 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序