我爱编程

【MySQL必知必会】第17章:组合查询

2018-04-11  本文已影响28人  100gle

多数SQL查询都只使用单条SELECT语句。但MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为(union)或复合查询(compound query)。

以下两种情况时需要使用到组合查询:

17.1 创建组合查询

使用UNION函数来组合数条单个SELECT语句的SQL查询:

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);

17.2 UNION规则

17.3 包含或取消重复行

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);

17.4 对组合查询结果的排序

在使用UNION时,只能使用一条ORDER BY子句,且必须出现在最后一条SELECT语句之后

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;
上一篇 下一篇

猜你喜欢

热点阅读