MySQL 自学第十七章 组合查询

在这里插入图片描述

组合查询

之前学习使用的查询,都是串行执行,返回单个结果,

组合查询

组合查询能够实现通过UNION 子句将两个查询语句并行执行,并最终在一张结果列表中输出;

如何创建组合查询

在多个查询语句之间使用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 (1001,1002);

在这里插入图片描述

UNION使用的规则

在进行组合查询时有几条规则需要注意。
 UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔(因此,如果组合4条SELECT语句,将要使用3个UNION关键字)。
 UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过分析各个列不需要以相同的次序列出)。
 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型(例如,不同的数值类型或不同的日期类型)。
如果遵守了这些基本规则或限制,则可以将组合查询用于任何数据检索任务。

包含或取消重复的行

从上面截图中可以看到输出的结果是没有包涵重复的行的;

那如果需要输出所有的行,就需要使用UNION ALL进行匹配;

由下图使用UNION 和UNION ALL 可以看到,输出的结果中包涵了重复的行;
在这里插入图片描述

对组合查询结果排序

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;

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值