mysql复合查询 -- 合并查询(union,union all)

目录

合并查询

介绍

表数据

union

使用场景

​编辑

示例

[union all](#union all)


合并查询

介绍

它不像笛卡尔积那种,将行信息做乘法

  • 合并只是单纯地合在一起
  • 求的是两个结果集的并集 ,并且会自动去掉并集中的重复行

注意,因为是求并集,会将两个结果进行拼接

  • 所以要保证列信息相同

表数据

两张表,某公司的正式员工表和承包商员工表(可能有员工拥有双重身份)

sql 复制代码
CREATE TABLE employees (
    empno INT PRIMARY KEY,
    ename VARCHAR(50),
    job VARCHAR(50),
    deptno INT
);
sql 复制代码
CREATE TABLE contractors (
    empno INT PRIMARY KEY,
    ename VARCHAR(50),
    job VARCHAR(50),
    deptno INT
);


INSERT INTO contractors (empno, ename, job, deptno) VALUES
(4, 'JOHN', 'MANAGER', 10),
(5, 'DAVIS', 'ANALYST', 20),
(2, 'SMITH', 'ANALYST', 20); 

union

用于合并两个或多个 SELECT 查询的结果。它会自动去除重复的行,只返回唯一的记录

使用场景

示例

获取所有的经理和分析师的姓名和职位,不论他们是正式员工还是承包商

  • 需要将两张表的数据汇总到一起,且不能有重复数据

需要我们使用union关键字将两个sql语句连接:

sql 复制代码
select * from employees where job='MANAGER' or job='ANALYST' union select * from contractors where job='MANAGER' or job='ANALYST';

union all

如果不想去重,在union后+all

相关推荐
韩立学长6 小时前
【开题答辩实录分享】以《自助游网站的设计与实现》为例进行选题答辩实录分享
java·mysql·spring
SAP小崔说事儿6 小时前
在数据库中将字符串拆分成表单(SQL和HANA版本)
java·数据库·sql·sap·hana·字符串拆分·无锡sap
川贝枇杷膏cbppg7 小时前
asmcmd
数据库·oracle
JIngJaneIL8 小时前
基于java+ vue助农电商系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
q_19132846958 小时前
基于Springboot+MySQL+RuoYi的会议室预约管理系统
java·vue.js·spring boot·后端·mysql·若依·计算机毕业设计
IndulgeCui8 小时前
基于CentOS7 DM8单机部署配置记录-20251216
数据库
surtr18 小时前
关系代数与关系型数据库
数据库·sql·数据库系统
学海_无涯_苦作舟8 小时前
MySQL面试题
数据库·mysql·面试
老邓计算机毕设8 小时前
SSM校内二手书籍交易系统的设计与实现an1k0(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·ssm 框架开发·ssm 校内二手书籍交易系统
天行健,君子而铎9 小时前
高性能、可控、多架构:教育行业数据库风险监测一体化解决方案
数据库·架构