本章讲述如何利用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 (10