mysql 组合查询_MySQL组合查询教程

#MYSQL#这是我MySQL的第八篇教程。本篇主要介绍的是MySQL的组合查询的用法。在大多数的SQL查询中都只包含从一个或者多个表中返回数据的单条SELECT语句,MySQL其实也支持允许执行多条SELECT语句,并将结果作为单个结果集返回,这些组合查询通常称为并(union)或者叫做复合查询。

7c1542589bcdb93282fd07fdda9498ca.png

组合查询也有他的使用场景,第一个就是在单个查询中从不同的表返回类似结构的数据时,第二个就是在复单个表执行多个查询,按单个查询返回数据。在多数的情况下组合相同表的两个查询完成的工作与多个WHERE子句条件的单条查询完成的工作是相同的。

首先来看一下如何创建组合查询,在创建组合查询的时候使用的操作符是UNION,利用UNION来将多条SELECT语句进行关联,他所作的很简单,就这在多条SELECT语语句之间加上UNION就可以了。

2b9797a1a8b49b1e397b593667d7808c.png

举一个例子,假如需要查询价格小于等于5的所有物品的一个列表,而且还想查询出供应商编号为1001和1002的所有物品,就可以使用UNION来连接两个SELECT的查询语句,在这里就做到鱼和熊掌可兼得的事情。这条语句就是由两条SELECT语句组成,中间使用UNION来进行连接,

b54e5069615a8019109f51014a4910c1.png

union的使用规则,union组合查询是非常容易实现的,但是有几点需要注意,第一就是UNION必须由两条或者两条以上的SELECT语句组成,一条也就不叫组了。第二点,UNION中的每个查询必须包含相同的列,表达式或者聚集函数。

UNION的另外一个功能就是包含或者取消重复的行。union从查询结果集中自动去除了重复的行,换句话说就是他的行与单条的SELECT语句中使用多个WHERE子句条件是一样的。这是UNION的默认功能,但是如果需要可以改变他,就是说如果需要匹配所有的行,可以使用UNION ALL而不是UNION. 在使用UNION ALL时MySQL不取消重复的行。

cdf2b84c0cc7f7f336569b6b7eb090c9.png

UNION的另外一个用处就是可以对组合结果进行排序,在SELECT语句中输出的结果集需要排序是使用ORDER BY子句,它必须出现在最后一条的SELECT语句之后,对于组合查询的结果集来说,不存在用一直方式排序,而且在使用组合排序的时候只能使用一次ORDER BY排序,不管你有几条SELECT语句进行组合。

82b5c3fbec5202605d415f3b5f29d35f.png

在这条UNION语句当中最后一个SELECT语句使用 了,ORDER BY子句,虽然ORDER BY子句似乎只是最后一个SELECT语句的专属,但是实际上他是对整体的结果集进行了排序,而不单单只是对最后一个SELECT语句进行排序的。

以上内容就是全部的组合查询UNION的使用方法和注意事项,希望对你在日常开发过程中能有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java后端 + 百度SDK实现人脸识别

Java后端 百度SDK实现人脸识别 人工智能越来越贴近我们的生活,相信大家也经常接触到人脸识别,手机付款、app注册验证、门禁等等。 如果要用Java后台使用这些功能,那么需要怎么做呢?请看完下面这篇文章,就能轻松、简单…

路由器局域网设置_路由器基础介绍

路由器已经商用很多年了,但是一些SSID, DHCP, 这些名词都还没有搞懂,遇到路由器问题,不知所措,只能求助于网管。但是有些问题是很简单的,只要稍微去学习就可以解决问题。下面介绍路由器的一些简单问题。路由…

mysql主键设置after_mysql如何改变主键属性

mysql改变主键属性的方法:1、使用关键字modify,代码为【alter table tbl_name modify.....】;2、使用关键字change,代码为【alter table tbl_name change..】。本教程操作环境:windows7系统、mysql8.0.22版&#xff0c…

python打包成exe_Python打包成exe时,再犯这几个错误就说不过去了

大家好,我是今天的值班小编,不知道朋友们开工了没有,小编的公司已经远程办公好几天了。今天由于写游戏教程的那位小编弃坑不更新文章了,只好由本小编继续来解决粉丝朋友们的问题。 如果朋友们在使用python的过程中遇到了任何问题&…

机器视觉 光学工程专业_瑞士Idonus MEMS制造设备 创新技术 机器视觉测量(远心光学)...

机器视觉从图像处理算法到光学安装,idonus 提供部分或全部机器视觉解决方案。典型应用包括机械零件的高通量自动测量、表面质量检测、定位、质量控制或识别。我们定制开发的解决方案可与机器人化或手动设备相结合。我们的报价:定制硬件和软件&#xff0c…

vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)

数据库安装: 此处有两种安装方式,第一种使用xxx.msi图形化安装方式,和普通的exe软件安装方式一样,按照默认选项一直下一步就可以。mysql下载地址为http://dev.mysql.com/downloads/windows/installer/ 第二种是在mysql官网下载zip…

电脑时间校对器_笔记本电脑如何保养?华为教你五招轻松延长使用时间

集微网7月11日消息(文/数码控),近日华为花粉俱乐部官方微信公众号发表长文教用户如何保养笔记本电脑,具体有以下五招:

uvc能支持多大分辨率_华为手环B5测评:该有的功能一个不缺,甚至还能变身蓝牙耳机...

前阵子,华为召开nova5系列新品发布会的同时,也给用户们带来了华为手环B5的新配色--铅石青。华为手环B5在去年7月发布,分为三个版本:运动版999元、商务版1199元、时尚版1499元。​此次更新的是运动版,售价仍为999元&…

cf不能全屏win7的解决方法_win7系统局域网不能访问怎么办 win7局域网不能访问解决方法...

在局域网当中比较实用的功能要数共享文件了,局域网共享可以让用户们共享和管理资源更加便捷,可以大大提高工作效率,不过最近有位win7系统用户使用电脑的时候,发现电脑无法访问局域网中的其他任何一台电脑,这让用户不知…

CGLib动态代理原理

CGLib动态代理原理 CGLib动态代理是代理类去继承目标类,然后重写其中目标类的方法啊,这样也可以保证代理类拥有目标类的同名方法; 看一下CGLib的基本结构,下图所示,代理类去继承目标类,每次调用代理类的方…

sql读取excel数据_Python 读取 Excel 数据,并插入到MySQL

说实话,个人不建议用Python来读取Excel进行入库操作,有条件的话,可以尝试用 ETL 工具,快速导入到MySQL中,或者也可使用 SQL 的导入工具进行。写本文的目的在于:记录一下之前做过一次这个同类型的东西。也为…

无向图的深度优先遍历非递归_图算法总结

[TOC]图算法1、图的表示1.1、邻接矩阵(有向图、无向图、带权图、代码实现)1、无向图的邻接矩阵 2、有向图的邻接矩阵 3、带权值的图 有了上述的理解,我们可以设计数据结构,并实现了。C实现如下:#include1.…

华为ipd项目管理流程_IPD:一套卓越的产品开发经营体系

IPD全流程指的不仅仅是“产品开发流程”,而是如何实现产品“从机会到商业变现”的全流程。华为通过20年的全流程实践,才做到持续性推出高质量产品和解决方案。本期IPD全流程班,帮助企业研发管理者学习这套结构化流程,其中划下重点…

Springboot中@ComponentScan 注解

三个点: 1、工程中Application类的位置。默认情况下就不需要配置ComponentScan这个注解了。 因为Application类,在启动的时候,默认是加载和Application类所在同一个目录下的所有类,包括所有子目录下的类。所以一般情况下&#xff…

在react里写原生js_小程序原生开发与第三方框架选择

最近正在更新《微信小程序入门与实践》一书的第二版。书中有一章节谈到了”多样化的小程序开发“,摘取并加以整理分享给各位开发者。我一向不推荐也不提倡公众号阅读学习编程,文章更多的是列出小程序如今多样化的框架选择,并简单剖析它们之间…

springboot中service层注入的是实现类,但Controller层接收的是接口

我们习惯这样编写代码: 在service层写接口,然后用实现类去实现接口,并且将实现类注入到容器中 Service public class AccountServiceImpl implements AccountService {}在controller层却是用接口操作service的bean的方法, Auto…

mysql data transfer_MySQL主从同步加速 Transfer-- FAQ

Q: Transfer是什么A: 是一个解决MySQL原生主从同步延迟的方案。 Transfer本身是一个在MySQL源码上打的patch,可以用于当Slave,也可以用于当第三方工具,将Master的数据同步发给Slave。 利用多线程实现主从无延迟。Q: Transfer目前的发布形式&a…

springboot整合mybatisplus中@Mapper与@MapperScan的使用

一、Mapper与MapperScan不可同时使用 二、Mapper用于注解单个mapper接口 三、Mapper Scan用于批量注解Mapper接口 四、Mapper不起作用时,因为缺少下图中的依赖包 以上为自己整合框架中遇到的问题与解决方案,如果以上解决方案不能解决您的问题&#x…

html列表按时间排序代码_按字母顺序排序的列表

有时候你需要自制一份课件PPT或者手写笔记的关键词索引,用来开卷考试查阅PPT或者复习查阅笔记时能快速定位查阅内容位置,这时你可能想要一个按字母顺序排序的列表来帮助构建需要的索引。LaTeX自身的index本身并不支持这样的功能,修改起来也颇…

@MapperScan和@ComponentScan使用问题

报错如下 原因:当MapperScan和ComponentScan一起使用时,项目启动时扫描包会发生冲突,找不到swagger配置类的包和mapper接口的包 解决办法:MapperScan和ComponentScan可以一起使用。 改为MapperScan(basePackages {}…