网站首页 > 基础教程 正文
前面介绍了如何使用 WHERE 给查询加上条件约束,本小节介绍如何使用 UNION 联合查询。实际业务中,有时候需要把满足多种独立条件的结果集整合到一起,就可以使用 UNOIN 联合查询,本小节介绍 UNION 和 UNION ALL 的用法和区别。
1.UNION ALL联合查询
同样为了演示方便,先向 teacher 表插入多条测试数据:
INSERT INTO teacher
(name,age,id_number,email)
VALUES
('姓名一',17,'42011720200604077X',NULL),
('姓名二',18,'42011720200604099X','123@qq.com'),
('姓名三',19,'42011720200604020X',NULL),
('姓名四',20,'42011720200604022X','345@qq.com'),
('姓名五',21,'42011720200604033X',NULL),
('姓名六',22,'42011720200604077X',NULL),
('姓名七',23,'42011720200604099X','123@qq.com'),
('姓名八',24,'42011720200604020X',NULL),
('姓名九',25,'42011720200604022X','345@qq.com'),
('姓名十',26,'42011720200604033X',NULL),
('姓名1',27,'42011720200604077X',NULL),
('姓名2',28,'42011720200604099X','123@qq.com'),
('姓名3',29,'42011720200604020X',NULL),
('姓名4',30,'42011720200604022X','345@qq.com'),
('姓名5',31,'42011720200604033X',NULL),
('姓名6',32,'42011720200604077X',NULL),
('姓名7',33,'42011720200604099X','123@qq.com'),
('姓名8',32,'42011720200604020X',NULL),
('姓名9',31,'42011720200604022X','345@qq.com'),
('姓名0',30,'42011720200604033X',NULL)
执行结果如下图:
现在使用 UNION ALL 把满足两种查询条件的结果集并到一起:
SELECT * FROM teacher WHERE age > 20
UNION ALL
SELECT * FROM teacher WHERE age > 25;
执行结果如下图:
Tips:如上图所示,UNION ALL 将两种查询结果并到一起,仔细观察可以发现结果集中有重复的数据,所以使用 UNION ALL 联合查询的结果集没有去掉重复的数据。
2.UNION 联合查询
现在使用 UNION 把上面两种结果集并到一起:
SELECT * FROM teacher WHERE age > 20
UNION
SELECT * FROM teacher WHERE age > 25;
执行结果如下图:
Tips:如上图所示,UNION 将两种查询结果并到一起,可以看到结果集中已经去掉重复的数据,需要根据具体业务选择使用 UNION 还是 UNION ALL。
3.小结
本小节介绍了如何使用 UNION 和 UNION ALL 联合查询需要结果集,需要注意的是要根据具体业务选择使用 UNION 还是 UNION ALL 其中 UNION 联合查询已经去除了重复的结果集 UNION ALL 联合查询没有去除重复结果集,但是 UNION ALL查询性能要比 UNION好一些。
猜你喜欢
- 2025-05-10 「工具」三步搞定数据库MySQL卸载
- 2025-05-10 Mysql数据库入门到精通(mysql从入门到精通pdf)
- 2025-05-10 【深入浅出MySQL】「底层原理」InnoDB原理带你从入门到精通
- 2025-05-10 PHP MySQLi基础教程 MySQL 创建数据库
- 2025-05-10 在Windows环境下MySQL命令行备份还原数据库图文教程
- 2025-05-10 PHP和MySQL命令行初级教程(php mysqli)
- 2025-05-10 新手教程系列之《Mysql5.5 Windows10安装》
- 2025-05-10 面试官:MySQL索引底层数据结构原理与性能调优,你能回答多少?
- 2025-05-10 「Qt入门第22篇」 数据库(二)编译MySQL数据库驱动
- 2025-05-10 QT 5.12.11 编译MySQL 8 驱动教程- 1.01版
- 最近发表
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- mysql教程 (60)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)