mysql关联查询详解(详解mysql 组合查询)
类别:数据库 浏览量:2425
时间:2022-01-19 00:17:57 mysql关联查询详解
详解mysql 组合查询使用union
多数sql查询都只包含一个或多个表中返回数据的单条select语句。mysql也允许执行多个查询(多条select语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)
有两种情况需要使用组合查询:
- 在单个表查询中从不同的表返回类似结构的数据;
- 对单个表执行多个查询,按单个查询返回数据。
组合查询和多个where条件:多数情况下,组合相同表的两个查询完成的工作与具有多个where子句条件的单条查询完成的工作相同。
可用union操作符来组合数条sql查询,所需要做的就是给出每条select语句,在各条语句之间放上关键字union
例如:
假设需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品,当然可以利用where子句来完成,不过这里我们使用union
- 这里是两条语句的组合
|
select vend_id, prod_id, prod_price from products where prod_price <= 5; |
|
select vend_id, prod_id, prod_price from products where vend_id in (1001, 1002); |
- 可以使用下面的语句
|
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); |
- 同样,可以使用where子句
|
select vend_id, prod_id, prod_price from products where prod_price <= 5 or vend_id in (1001, 1002); |
union规则
- union必须由两条或两条以上的select语句组成,语句之间用关键字union分隔
- union中的每个查询必须包含相同的列、表达式或聚集函数(各个列不需要以相同的次序列出)
- 列数据烈性必须兼容:类型不必完全相同,但必须是dbms可以隐含地转换的类型(不同数值类型或不同的日期类型)
包含或取消重复的行
union会从查询的结果集中自动去除重复的行,如果想返回所有匹配行,可使用union all
|
select vend_id, prod_id, prod_price from products where prod_price <= 5 union all select vend_id, prod_id, prod_price from products where vend_id in (1001, 1002); |
对组合查询结果排序
select语句的输出用order by子句排序,在用union组合查询时,只能使用一条order by子句。它必须出现在最后一条select语句之后。不允许使用多条order by子句。
|
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 组合查询的详细内容,更多关于mysql 组合查询的资料请关注开心学习网其它相关文章!
原文链接:https://www.cnblogs.com/ZSMblog/p/12067779.html
您可能感兴趣
- mysql建表时指定聚簇索引(一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的)
- mysql存储过程limit参数(MySQL存储过程in、out和inout参数示例和总结)
- mysql 8.0.22 winx64安装配置方法图文教程(mysql 8.0.22 winx64安装配置方法图文教程)
- mysql日常运维(MySQL从库维护经验分享)
- mysqlcount使用技巧(MySQL巧用sum、case和when优化统计查询)
- mysql字符串默认长度(MySQL 字符类型大小写敏感)
- mysql自定义安装教程5.7(MySQL系列-源码编译安装v5.7.34)
- mysql数据库使用规则(mysql数据库基本语法及操作大全)
- php考试复习题(php+mysql开发的最简单在线题库在线做题系统完整案例)
- mysql查询很慢怎么回事(MySQL Like模糊查询速度太慢如何解决)
- mysql是自动commit吗(详解MySQL与Spring的自动提交autocommit)
- python怎样读取mysql数据(使用Python将Mysql的查询数据导出到文件的方法)
- mysql怎么做教材信息管理系统(python+mysql实现学生信息查询系统)
- mysql怎么和sqlyog连接(Mysql桌面工具之SQLyog资源及激活使用方法告别黑白命令行)
- mysql5.7.24rpm安装(MySQL系列-YUM及RPM包安装v5.7.34)
- django mysql设置(Django框架使用mysql视图操作示例)
- 三千年第一美女鞠婧祎出演白素贞pk杨紫,颜值胜赵雅芝王祖贤(三千年第一美女鞠婧祎出演白素贞pk杨紫)
- 成都轨道交通13号线一期工程最新进展(成都轨道交通13号线一期工程最新进展)
- 越南没事(越南没事情做)
- 重庆旅游攻略(重庆旅游3-4天攻略最佳线路)
- 周杰伦演唱会门票(周杰伦演唱会门票多少钱一张2023)
- 焕然一新 成都轨道集团官方网站改版上线(成都轨道集团官方网站改版上线)
热门推荐
- 虚拟主机跟云主机有什么区别(云主机和虚拟主机哪个好?)
- python opencv图像表格处理(Opencv-Python图像透视变换cv2.warpPerspective的示例)
- 在php中与数据库连接的技术(PHP7.0连接DB操作实例分析基于mysqli)
- css3控制效果过渡的属性(css3之UI元素状态伪类选择器实例演示)
- php支付系统(php实现的支付宝网页支付功能示例基于TP5框架)
- python基础教程常用函数整理(Python基础之函数的定义与使用示例)
- vue 父组件传值(Vue两个同级组件传值实现)
- 如何配置ftp服务器连接(云服务器设置ftp服务器配置怎么操作?)
- dem高低值怎么调整(dede5.7修改标题title长度方法总结)
- h5禁用返回键(可能这些是你想要的H5软键盘兼容方案小结)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9