1、组合查询
多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句。MYSQL也允许执行多个查询,并将结果作为单个查询结果返回。这些组合查询通常被称为并(union)或符合查询。
- 有两种情况需要使用组合查询
1.在单个查询中从不同的表中返回类似结构的数据
2.对单个表执行多个查询,按单个查询返回数据。
select prod_id,prod_name,prod_price
from products
where prod_price<=5
order by prod_price DESC;
select prod_id,prod_name,prod_price
from products
where vend_id in(1001,1002);
select prod_id,prod_name,prod_price
from products
where prod_price<=5 union
select prod_id,prod_name,prod_price
from products
where vend_id in(1001,1002);
- UNION规则
1.两条或多条SELECT语句组成
2.每个查询必须包含相同的列、表达式或聚集函数
3.列数据类型必须兼容:类型不必完全相同。
包含重复的行,MYSQL默认自动取消重复的行,可以使用UNION ALL来输出所有行,包括重复的行。
2、对组合查询结果排序
select prod_id,prod_name,prod_price
from products
where prod_price<=5
order by prod_price DESC;
select prod_id,prod_name,prod_price
from products
where vend_id in(1001,1002);
select prod_id,prod_name,prod_price
from products
where prod_price<=5 union
select prod_id,prod_name,prod_price
from products
where vend_id in(1001,1002)
ORDER BY vend_id,prod_price;