美文网首页MySQL 入门教程
20《MySQL 教程》UNION 联合查询

20《MySQL 教程》UNION 联合查询

作者: 木子教程 | 来源:发表于2022-03-28 21:45 被阅读0次

    前面介绍了如何使用 WHERE 给查询加上条件约束,本小节介绍如何使用 UNION 联合查询。实际业务中,有时候需要把满足多种独立条件的结果集整合到一起,就可以使用 UNOIN 联合查询,本小节介绍 UNIONUNION 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)
    
    

    执行结果如下图:

    5ea4444a093248bf10540449.jpg

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

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

    执行结果如下图:

    5ea44458099c02b510270691.jpg

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

    2.UNION 联合查询

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

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

    执行结果如下图:

    5ea444680963b26510520502.jpg

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

    3.小结

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

    相关文章

      网友评论

        本文标题:20《MySQL 教程》UNION 联合查询

        本文链接:https://www.haomeiwen.com/subject/codmjrtx.html