MySQL组合查询UNION

总结:

  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;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值