当前位置: 首页 > news >正文

mysql联合查询怎么加子查询吗_mysql学习之路_联合查询与子查询

联合查询:将多次查询(多条select语句)在记录上进行拼接(字段不会增加)。

语法:多条select语句构成,每条select语句获取的字段必须严格一致(但是字段类型无关)。

Select 语句1

Union [union选项]

Select语句2........

Union 选项有两个

All:保留所有

Distinct:去重。默认的

联合查询只要求字段一样,与数据类型无关。

意义:两种

1,查询一张表但是需求不同。

2,多表查询,多张表的结构完全一样,保存的数据也一样

Order by

使联合查询中order by 不能直接使用需要对查询语句使用括号。

例:

(select * from my-class where sex=’男’ order by age asc limit 999)

Union

(select * from my-class where sex=’女’ order by age desc limit 999);

若要order by生效,必须搭配limit,limit最大值。

子查询

子查询:subquery 查询是在某个查询结果之上进行的(一条select语句含另一条select语句)

子查询分为两种:按位置分,按结果分

按位置分类:子查询select语句在外部查询

Select语句出现的位置

Form子查询:子查询跟在form后面。

Where 子查询:子查询出现在where条件中

Exists子查询:子查询出现在exists里面

按结果分类:根据子查询得到的数据进行分类(理论上讲任何一个查询得到的结构都可以理解为二维表)

标量查询:子查询得到的结果是一行一列

列子查询:子查询得到的结果是一行多列

行子查询:子查询得到的结果是一行多列(多行多列)

表子查询:子查询得到的结果是多行多列(出现位置在form之后)

标量子查询

例:需求:知道名字php获取学生

Select *from my_class where c_id =(select id from my_student where c_name=php);

列子查询

例:需求查询所有在读班级的学生(班级表存在的班级)

1,确定数据源:学生

Select * from my_sutdent where c_id in (?)

2,确定有效班级id,所有班级id

Select id from my_class;

合:Select * from my_sutdent where c_id in (Select id from my_class);

列子查询返回的结果比较:一行多列,需要使用in作为条件匹配,其实mysql还有几个类似:all,some,any===in;

行子查询:

行子查询返回的结果可以是多行多列(一行多列)、

例:需求:要求查询整个学生中年龄最大,身高最高的学生

1,确定数据源

Select *from my_student where age =? and heigth=?;

2,确定最大的年龄和最高的身高

Select max(age),max(height)from my_student;

行子查询:需要构造行元素,行元素多个字段构成

Select * from my_student where (age,height)=(select max(age),max (height)from my_student);

表子查询:

表子查询:子查询返回的结果是多行多列的二维表,子查询的结果当做二维表来使用

例:需求:找出每班最后一个的学生

1,确定数据源;先将学生安装身高进行降序或者是升序

Select *from my_student order by height desc ;

2,从每个班选出第一个学生

Select * from my_student group by c_id;

表子查询:from子查询得到的结果作为from的数据源。

Exists 子查询

Exists 是否存在,exists子查询就是用来判断某些条件是否满足(跨表)exists是接在where之后,exists返回的结果只有0和1

例:查询所有的学生,前提条件是班级存在

1,确定数据源

Select *form my_student where?

2,确定条件是否满足

Exists (select * from my_class)--是否成立

mysql学习之路_联合查询与子查询

标签:union   不同   nio   mysql学习   出现   要求   from   mit   联合

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/lqh969696/p/9765540.html

相关文章:

  • shell+crontab+mysql_crontab+shell脚本实现定时备份mysql数据库
  • mysql association_MyBatis association的两种形式——MyBatis学习笔记之四
  • mysql 安装 linux debug_Linux 下 Mysql-4.0.26 安装调试问题
  • mysql语句整理_最全的mysql查询语句整理
  • mysql 同步机制_MySQL主从同步机制及同步中的问题处理
  • win8安装mysql出现2503_Win8.1安装msi出现2503错误怎么办?
  • mysql 大表增删查改_MySQL数据表的增删改查操作
  • 组态王如何连接mysql_组态王连接SQL数据库操作步骤
  • mysql blob转换字符串_最全MySQL面试60题和答案
  • 建立MySQL数据库之后_创建Mysql数据库
  • label读取摄像头 pyqt5_PythonPyQt5:摄像机和屏幕切换
  • 怎么获取前台提交数据是几兆_Web怎么获取请求数据,修改响应信息呢?
  • python 动态规划 回溯_回溯算法和动态规划的转化
  • python中xlrd官方_Python中如何用xlrd读取
  • python字符串常用操作字符串_python字符串常用操作
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Android 控件背景颜色处理
  • Apache的基本使用
  • create-react-app项目添加less配置
  • es6(二):字符串的扩展
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript服务器推送技术之 WebSocket
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Nacos系列:Nacos的Java SDK使用
  • Netty 4.1 源代码学习:线程模型
  • python 装饰器(一)
  • Python中eval与exec的使用及区别
  • redis学习笔记(三):列表、集合、有序集合
  • vue-router 实现分析
  • vue-router的history模式发布配置
  • 编写符合Python风格的对象
  • 彻底搞懂浏览器Event-loop
  • 简单基于spring的redis配置(单机和集群模式)
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 如何胜任知名企业的商业数据分析师?
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 通信类
  • 优秀架构师必须掌握的架构思维
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​VRRP 虚拟路由冗余协议(华为)
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $.ajax,axios,fetch三种ajax请求的区别
  • $GOPATH/go.mod exists but should not goland
  • (1)(1.13) SiK无线电高级配置(五)
  • (52)只出现一次的数字III
  • (编译到47%失败)to be deleted
  • (十三)Maven插件解析运行机制
  • (五)关系数据库标准语言SQL
  • (转载)利用webkit抓取动态网页和链接
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .cn根服务器被攻击之后
  • .NET 反射的使用
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET导入Excel数据