Mysql语法之组合查询
本章讲述如何利用UNION操作符将多条SELECT语句组合成一个结果集。
一、组合查询
多数SQL查询都只包含从一个或多个表中返回数据的SELECT语句。
MYSQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)或复合查询(compound query)。
有两种基本情况,其中需要使用组合查询:
- 在单个查询中从不同的表返回类似结构的数据
- 对单个表执行多个查询,按单个查询返回数据
二、创建组合查询
可用UNION操作符来组合数条SQL查询。
利用UNION,可给出多条SELECT语句,将它们的结果组合成单个结果集。
1.使用UNION
UNION的使用很简单。所需做的只是给出每条SELECT语句,在各条语句之间放上关键字UNION。
举一个例子,假如需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品(不考虑价格)。当然,可以利用WHERE子句来完成此工作,不过这次我们将使用UNION。
首先咱们先看看多条sql语句:
mysql>select vend_id, prod_id, prod_price from products where prod_price <=5;
mysql>select vend_id, prod_id, prod_price from products where vend_id IN (1001,1002);
咱们现在来组合这两条语句:
mysql>select **vend_id, prod_id, prod_price** from products where prod_price <=5;UNIONselect **vend_id, prod_id, prod_price** from products where vend_id IN (1001,1002);
2.UNIOIN规则
- UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔(因此,如果组合4条SELECT语句,将要使用3个UNION关键字)。
- UNION中的每个查询必须包含相同的列、表达式或聚集函数,不过各个列不需要以相同的次序列出。
- 列数据类型必须兼容;类型不必完全相同,但必须是DBMS可以隐含地转换的类型。
3.包含或取消重复的行
UNION从查询结果集中自动去除了重复的行。这是UNION的默认行为,但是如果需要,可以改变它。
只需要使用UNION ALL
mysql>select **vend_id, prod_id, prod_price** from products where prod_price <=5;UNION ALLselect **vend_id, prod_id, prod_price** from products where vend_id IN (1001,1002);
4.对组合查询结果排序
在用UNION组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条SELECT语句之后。
不允许使用多条ORDER BY 子句。
mysql>select **vend_id, prod_id, prod_price** from products where prod_price <=5;UNION select **vend_id, prod_id, prod_price** from products where vend_id IN (1001,1002);order by vend_id, prod_price;
MYSQL将用排序语句排序所有SELECT语句返回的所有结果。
Mysql语法之组合查询相关推荐
- 初识Mysql(part19)--我需要知道的3条Mysql语句之组合查询
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UNION.UNION ALL 此Blog会用到下面2个表. temp_product2: # id, ...
- MySql学习之组合查询(UNION)和全文本搜索(Match()和Against())
组合查询 一.何为组合查询? 组合查询的目的就是利用UNION操作符将多条SELECT语句的查询结果组合成一个结果集,供我们使用. 有两种基本情况下需要使用组合查询: 1.在单个查询中从不同的表返回类 ...
- mysql:union 组合查询
issue表 employee_table表 Union基础方法 -- union 去除重复 SELECT 1, 2 UNION SELECT 1, 2; -- union all 关联所有 包含重复 ...
- 使用python对学生表的查询_多表组合查询——Python操作Mysql数据库
前面我们介绍了单张表的查询,包括模糊查询.分组.排序.各种筛选条件等等操作,在实际应用中,查询的数据往往不止局限在一张表里,通常需要多张表在一起进行组合查询,今天我们将会对Mysql当中的多张有关联的 ...
- MySQL 学习笔记(4)— 组合查询、子查询、插入数据、更新/删除表数据、增加/删除表中的列以及重命名表
1. 组合查询 1.表的加减法 表的加法,即求 product 和 product2 的并集,UNION 运算会除去重复的记录 SELECT product_id, product_name FROM ...
- mysql sql组合_详解mysql 组合查询
使用UNION 多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句.MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并(uni ...
- mysql 组合查询_MySQL组合查询教程
#MYSQL#这是我MySQL的第八篇教程.本篇主要介绍的是MySQL的组合查询的用法.在大多数的SQL查询中都只包含从一个或者多个表中返回数据的单条SELECT语句,MySQL其实也支持允许执行多条 ...
- Mysql的多表查询(表添加,多表查询练习:笛卡尔积、内连接、外连接、子查询、UNION组合查询)
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录 一.表的创建 ...
- mysql 索引的模糊查询_MYSQL语法(模糊查询,视图,索引)
MYSQL语法(模糊查询,视图,索引) 2020年08月11日 | 萬仟网IT编程 | 我要评论 MYSQL模糊查询模糊查询,查询name 以张开头的数据select *from t1 where n ...
最新文章
- Nagios+pnp4nagios+rrdtool 安装配置为nagios添加自定义插件(三)
- 修改用户名_新华美育查找用户名及修改密码的方法分享
- java中interrupt,interrupted和isInterrupted的区别
- 在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样?
- 【Python学习】内置函数(不断更新)
- Mysql学习总结(50)——Oracle,mysql和SQL Server的区别
- pytorch初入门学习记录
- C#中如何截取Windows消息来触发自定义事件
- gitlab在push代码的时候报错
- php++l+函数,关于PHP中usort()函数的解读
- android netd firewall 分析,第2章 深入理解Netd
- linux有线无线同时使用教程,巧用无线路由器 让有线、无线网络互通
- 在电子电路中,为什么要进行电气隔离?
- mysql设置bufferpool_mysql修改buffer_pool大小
- Nodejs框架+uniapp前端微商个人相册多端小程序
- 快手也抢先字节出手了…
- IT内部控制体系建设方案-从IT角度解读《企业内部控制规范》
- 2D平台类游戏开发教程(翻译)
- 饮食健康会促进心理健康
- Linux服务器运维/虚拟主机-李强强-专题视频课程
热门文章
- SV绿皮书学习_day1(数据类型)
- 如何开发旅游商城系统?
- 矩阵可逆的充要条件及证明
- 计算机课逃一节,最想逃的课_厦门工学院
- 互联网新名词2019年计算机新名词,2019年上半年网络热词盘点 2019最新网络热词排行榜...
- Unity 图像识别 接入Face++ 进行 场景识别 和 文字识别
- Windows 服务器HTTPS免费证书
- 生活不易,未来的路还很长
- 7TPSM4220微型步进电机驱动器--ARDUINO驱动
- 渡课学习日记 20158/02/8/28java 第七课