Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
来源:互联网 发布:windows telnet服务器 编辑:程序博客网 时间:2024/06/05 10:20
有两种基本情况需要使用组合查询:
1、在单个查询中从不同的表返回结构类似的数据;
2、对单个表执行多个查询,按单个查询返回数据。
使用UNION
创建组合查询很简单,所需要做的只是给出每条SELECT语句,然后在各SELECT语句中间放上UNION。
举例:需要查询价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品(不考虑价格)。当然,可以利用WHERE子句来完成此工作。
1)查询价格小于等于5的所有物品的一个列表
mysql> SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price<=5;结果:
+---------+---------+------------+
| vend_id | prod_id | prod_price |
+---------+---------+------------+
| 1003 | FC | 2.50 |
| 1002 | FU1 | 3.42 |
| 1003 | SLING | 4.49 |
| 1003 | TNT1 | 2.50 |
+---------+---------+------------+
4 rows in set (0.02 sec)
2)查询供应商1001和1002生产的所有物品
mysql> SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN (1001,1002);结果:
+---------+---------+------------+
| vend_id | prod_id | prod_price |
+---------+---------+------------+
| 1001 | ANV01 | 5.99 |
| 1001 | ANV02 | 9.99 |
| 1001 | ANV03 | 14.99 |
| 1002 | FU1 | 3.42 |
| 1002 | OL1 | 8.99 |
+---------+---------+------------+
5 rows in set (0.10 sec)
3)组合返回结果
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);结果:
+---------+---------+------------+
| vend_id | prod_id | prod_price |
+---------+---------+------------+
| 1003 | FC | 2.50 |
| 1002 | FU1 | 3.42 |
| 1003 | SLING | 4.49 |
| 1003 | TNT1 | 2.50 |
| 1001 | ANV01 | 5.99 |
| 1001 | ANV02 | 9.99 |
| 1001 | ANV03 | 14.99 |
| 1002 | OL1 | 8.99 |
+---------+---------+------------+
8 rows in set (0.03 sec)
发现组合查询比分开查询的总结果少了一行,这是因为默认情况下UNION会过滤掉重复的行。
使用UNION的规则
1)必须由多条SELECT语句组成,语句中间用关键词UNION分割。
2)UNION的每个查询必须含有相同的列,表达式或者聚集函数(次序无关紧要)
3)列数据类型必须兼容(例如,不同的数值类型或不同的日期类型)
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- select 多表查询 组合查询语句
- jpa+mysql,union组合查询求和结果出错
- 单个select语句实现MySQL查询统计次数
- MySQL组合查询(Union)
- mysql组合查询(union和union all)
- sql联合查询 一条select语句 查询多个结果,显示
- 查询语句之Union联合结果集
- Oracle 多个查询语句结果合并
- 在HQL select查询语句中自定义查询结果返回的数据类型
- SQL:如何把多行查询结果,作为一行返回
- oracle中用一条select 语句把符合多个条件的查询结果列出来
- union || union ALL 合并 两个或者多个select语句的结果集
- sql语句查询结果合并union 和union all用法
- sql语句查询结果合并union 和union all用法
- sql语句查询结果合并union 和union all用法
- sql语句查询结果合并union 和union all用法
- 合并union 和union all用法-sql语句查询结果
- 多式样ProgressBar
- Android4.3 蓝牙BLE初步
- .net 读取独立的配置文件
- Fragment的应用
- 笔记
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- Matlab连接数据库mysql
- 27-网络编程-20-网络编程(常见客户端和服务端)
- js中2个等号与3个等号的区别
- 【连载】实用小demo连载 4 —— css3+js 大转盘 demo
- hdu 2203 亲和串(kmp)
- 27-网络编程-21-网络编程(了解客户端和服务器端原理)
- ListView中convertView和ViewHolder的工作原理
- HDU1301 Jungle Roads