MySQL组合查询UNION

本文深入解析了SQL中的组合查询技巧,重点介绍了UNION、UNION ALL及ORDER BY的使用方法,通过实例演示如何整合不同查询结果,适用于多表或多查询场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结:

  1. 组合查询:UNION,放在两个SELECT语句之间,如果有n个SELECT语句,则用n-1个UNION.
  2. 重复行也出现:UNION ALL
  3. 排序:ORDER BY 写在所有SELECT语句最后,只用一次。
  4. UNION可简化WHERE语句
  5. UNION适合用于查询多个表的情况下。

———————————————————————————————————————————

组合查询定义:

多个查询(多条SELECT语句)的结果集合。用UNION,或复合查询(compound query).

 

适用情况

单个查询中多个表

单个表中多个查询

 

使用方法:

多条SELECT语句中用UNION连接即可。有n个SELECT语句,则用n-1个UNION.

 

注意:使用UNION时,所有SELECT语句中选择的列必须相同(顺序可变)。

 

例子:

选择价格小于5的产品信息,包括1001,1002编号的生产商生产的所有商品。

1. 价格小于5的产品信息

SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price<5;

2. 10011002编号的生产商生产的所有商品

SELECT vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1002,1001);

3. 使用WHERE

SELECT vend_id, prod_id, prod_price FROM products

WHERE vend_id IN (1002,1001)

OR prod_price<5;

4. 使用UNION

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 (1002,1001);

5. 使用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 (1002,1001);

6. 排序:ORDER BY只使用一次,用在所有SELECT语句最后

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 (1002,1001)

ORDER BY vend_id,prod_price;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值