MySQL学习笔记(7)--联合查询

·基本概念

联合查询是合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个查询结果组合到一起,使用union 或者union all。
就是将多个查询的结果合并到一起(纵向合并),字段数不变,多个查询的记录数合并

·应用场景

  1. 一张表中不同的结果(需要对应多条查询语句来实现),合并到一起展示数据
    (男生身高升序排序,女生身高降序排序)
  2. 最常见的情况:在数据量大的情况下,会对表进行分表操作,需要对每张表进行部分数据统计,使用联合查询来将数据存放到一起显示
    (QQ1表获取在线数据,QQ2表获取在线数据-----将所有在线数据显示出来)

·基本语法

select 语句
union [union 选项]     --union 选项:distinct去重(默认)/ all
select 语句;
--实例
select * from my_student
union
select * from my_student;   
--结果和一次select一致,因为默认去重,如果选择all,就是纵向重复一次结果

union理论上只需要保障字段数一样,不用保证字段类型一样,只保留一个select语句对应的字段 名(但是这样毫无意义)

·order by的使用

1.如果要使用order by,select语句必须在括号里

(select * from my_student where gender = 1 order by stu_height)
union
(select * from my_student where gender = 2 order by stu_height desc);
--结果并没有排序

在这里插入图片描述
2.若想要order by生效,必须配合limit使用,限制量通常使用一个较大的数值,不真的限制就行

(select * from my_student where gender = 1 order by stu_height limit 10)
union
(select * from my_student where gender = 2 order by stu_height desc limit 10);

在这里插入图片描述

发布了19 篇原创文章 · 获赞 20 · 访问量 9545

猜你喜欢

转载自blog.csdn.net/qq_39323164/article/details/104122836