相关文章推荐
坚韧的开心果  ·  Vue中 使用定时器 ...·  5 月前    · 
霸气的小马驹  ·  mongodb - Mongo Facet ...·  1 年前    · 
活泼的作业本  ·  "IME died" and ...·  1 年前    · 
谈吐大方的大象  ·  python ...·  1 年前    · 

使用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)列数据类型必须兼容(例如,不同的数值类型或不同的日期类型)

SELECT ( st_distance ( point ( longitude, latitude ), point ( 114.32602, 30.55383 ) ) * 111195 ) AS distance activity_wish_list WHERE area_5 = 2426 我们在使用Mybatis分页 查询 数据列表时,在用户的一个请求中常常需要同时 返回 当前页的列表数据以及满足条件的数据总条数。以下介绍了三种常见方案。具体使用哪种,具体场景具体分析。 1)执行两次SQL,一次查列表,一次查总数 这种方法最简单,也最容易实现。缺点是需要执行两次SQL 查询 。 2)分页插件PageHelper 另一种常用的方... 单个 select 语句 实现 MySQL 查询 统计次数 单个 select 语句 实现 MySQL 查询 统计次数的方法用处在哪里呢?用处太多了,比如一个成绩单,你要 查询 及格得人数与不及格的人数,怎么一次 查询 出来? MySQL 查询 统计次数简单的 语句 肯定是这样了: 代码如下: select a.name,count_neg,count_plus from    ( select count(id) as count_plus,name from score2 where score >=60 group by name) a,   ( select count(id) as count_neg,name from sco 这篇文章主要介绍了PHP实现 mysql i批量执行 多条 语句 的方法,结合实例形式分析了php连接 mysql i并批量执行 多条 语句 的相关操作技巧,需要的朋友可以参考下具体如下:可以 一次性 的执行 多个 操作或取回 多个 结果集。实例:$ mysql i = new mysql i("localhost", "root", "111111", "test");/* check connection */if ( mysql i... 这是创建第一个表的 查询 mysql >createtableDemoTable1->(->StudentNamevarchar(20),->StudentMarksint->);为了理解上述概念,让我们创建第二个表。 mysql >createtableDemoTable2->(->Namevarchar(20)->)... 在数据库数据不大的情况下可以使用 union all对数据库进行操作,避免多次对数据库进行连接 select t.userid,t.phone from table1 t where t.isacceptmsg = 1 and policecatename = ? " +              " union all select t.LOGINNAME as userid,MOBILE a MySQL UNION UNION all 操作符将两个结果集合并一个表 比如第一个 查询 有100条两列,第二个 查询 结果也为160条两列,故使用 union all之后,可以将这两个结果合并成一个,变成260行两列。 MySQL UNION 操作符用于连接两个以上的 SELECT 语句 的结果 组合 到一个结果集合中。 多个 SELECT 语句 会删除重复的数据。 MySQL UNIO... 1. mysql 数据库默认情况下, mysql _query()是一次只执行一条 语句 。#include "stdafx.h" #include < mysql .h> #include <string>using namespace std;int _tmain(int argc, _TCHAR* argv[]) MYSQL mysql ; mysql _init(& mysql ); MY 我们可以使用 UNION 语句 一次性 返回 多个 SELECT 语句 ,这种 查询 通常称为并( union )或者复核 查询 (compound query) 有两种基本情况,我们需要用到 组合 查询 : 在 单个 查询 中从不同的表 返回 类似结构的数据 对 单个 表执行 多个 查询 ,按 单个 查询 返回 数据。 多数情况下, 组合 相同表的两个 查询 完成的工作与具有 多个 WHERE 子句条件的单条 查询 完成的工作相同。换句话说,任何具有 多个 WHERE 子句的 SELECT 语句 都可以作为一个 组合 查询 给出,在以下段落中可以看到这一点。这两种技术在不同的 问题1. 查询 条件不同, 返回 多个 结果整合在 查询 的时候,有时候常常须要用到子 查询 ,好比 查询 今天的订单数量, 7天的订单数量,31天的订单数量, 这种条件不同,可是非要整在一个表中来显示就须要不少子 查询 来实现了:java select ( select xx from xx where 条件一) as 结果一, select ( select xx from xx where 条件二) as 结果二, select ... 通常情况 MySQL 出于安全考虑不允许一次执行 多条 语句 (但也不报错,很让人郁闷)。 MySQL 是支持在 单个 查询 字符串中指定多 语句 执行的,使用方法是给链接指定参数://链接时设定 mysql _real_connect( ..., CLIENT_MULTI_STATEMENTS );//或者//中途指定 mysql _set_server_option( mysql , MYSQL _OPTIO