大家好,欢迎来到IT知识分享网。
前面介绍了如何使用 WHERE 给查询加上条件约束,本小节介绍如何使用 UNION 联合查询。实际业务中,有时候需要把满足多种独立条件的结果集整合到一起,就可以使用 UNOIN 联合查询,本小节介绍 UNION 和 UNION ALL 的用法和区别。
1.UNION ALL联合查询
同样为了演示方便,先向 teacher 表插入多条测试数据:
INSERT INTO teacher (name,age,id_number,email) VALUES ('姓名一',17,'X',NULL), ('姓名二',18,'X',''), ('姓名三',19,'X',NULL), ('姓名四',20,'X',''), ('姓名五',21,'X',NULL), ('姓名六',22,'X',NULL), ('姓名七',23,'X',''), ('姓名八',24,'X',NULL), ('姓名九',25,'X',''), ('姓名十',26,'X',NULL), ('姓名1',27,'X',NULL), ('姓名2',28,'X',''), ('姓名3',29,'X',NULL), ('姓名4',30,'X',''), ('姓名5',31,'X',NULL), ('姓名6',32,'X',NULL), ('姓名7',33,'X',''), ('姓名8',32,'X',NULL), ('姓名9',31,'X',''), ('姓名0',30,'X',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好一些。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/188218.html