快捷搜索:  汽车  科技

mysql联合查询用法(20MySQL教程UNION联合查询)

mysql联合查询用法(20MySQL教程UNION联合查询)Tips:如上图所示 UNION 将两种查询结果并到一起,可以看到结果集中已经去掉重复的数据,需要根据具体业务选择使用 UNION 还是 UNION ALL。SELECT * FROM teacher WHERE age > 20 UNION SELECT * FROM teacher WHERE age > 25; 执行结果如下图:SELECT * FROM teacher WHERE age > 20 UNION ALL SELECT * FROM teacher WHERE age > 25; 执行结果如下图:Tips:如上图所示 UNION ALL 将两种查询结果并到一起,仔细观察可以发现结果集中有重复的数据,所以使用 UNION ALL 联合查询的结果集没有去掉重复的数据。现在使用 UNION 把上面两种结果集并到一起:

前面介绍了如何使用 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)

执行结果如下图:

mysql联合查询用法(20MySQL教程UNION联合查询)(1)

现在使用 UNION ALL 把满足两种查询条件的结果集并到一起:

SELECT * FROM teacher WHERE age > 20 UNION ALL SELECT * FROM teacher WHERE age > 25;

执行结果如下图:

mysql联合查询用法(20MySQL教程UNION联合查询)(2)

Tips:如上图所示 UNION ALL 将两种查询结果并到一起,仔细观察可以发现结果集中有重复的数据,所以使用 UNION ALL 联合查询的结果集没有去掉重复的数据。

2.UNION 联合查询

现在使用 UNION 把上面两种结果集并到一起:

SELECT * FROM teacher WHERE age > 20 UNION SELECT * FROM teacher WHERE age > 25;

执行结果如下图:

mysql联合查询用法(20MySQL教程UNION联合查询)(3)

Tips:如上图所示 UNION 将两种查询结果并到一起,可以看到结果集中已经去掉重复的数据,需要根据具体业务选择使用 UNION 还是 UNION ALL。

3.小结

本小节介绍了如何使用 UNION 和 UNION ALL 联合查询需要结果集,需要注意的是要根据具体业务选择使用 UNION 还是 UNION ALL 其中 UNION 联合查询已经去除了重复的结果集 UNION ALL 联合查询没有去除重复结果集,但是 UNION ALL查询性能要比 UNION好一些。

猜您喜欢: