SQL基础教程(第2版)第5章 复杂查询:5-3 关联子查询

Posted 绍耕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL基础教程(第2版)第5章 复杂查询:5-3 关联子查询相关的知识,希望对你有一定的参考价值。

第5章 复杂查询:5-3 关联子查询

关联子查询会在细分的组内进行比较时使用。
关联子查询和GROUP BY子句一样,也可以对表中的数据进行切分。
关联子查询的结合条件如果未出现在子查询之中就会发生错误。


■ 普通的子查询和关联子查询的区别

按此前所学,使用子查询就能选取出销售单价(sale_price)高于全部商品平均销售单价的商品。
这次我们稍稍改变一下条件,选取出各商品种类中高于该商品种类的平均销售单价的商品。

这样大家就能明白该进行什么样的操作了吧。我们并不是要以全部商品为基础,而是要以细分的组为基础,对组内商品的平均价格和各商品的销售单价进行比较。

■ 使用关联子查询的解决方案


这样我们就能选取出办公用品、衣服和厨房用具三类商品中高于该类商品的平均销售单价的商品了。
这里起到关键作用的就是在子查询中添加的 WHERE 子句的条件。该条件的意思就是, 在同一商品种类中对各商品的销售单价和平均单价进行比较。
这次由于作为比较对象的都是同一张 Product 表,因此为了进行区别,分别使用了 P1 和 P2 两个别名。在使用关联子查询时,需要在表所对应的列名之前加上表的别名,以“< 表名 >.< 列名 >”的形式记述。

■ 关联子查询也是用来对集合进行切分的

■ 结合条件一定要写在子查询中

 

以上是关于SQL基础教程(第2版)第5章 复杂查询:5-3 关联子查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL基础教程(第2版)第5章 复杂查询:练习题

SQL基础教程(第2版)第5章 复杂查询:5-1 视图和表

SQL基础教程(第2版)第2章 查询基础:2-2 算数运算符和比较运算符

SQL基础教程(第2版)第3章 聚合与排序:3-4 对查询结果进行排序

SQL基础教程(第2版)第3章 聚合与排序:3-1 对表进行聚合查询

SQL基础教程(第2版)第8章 SQL高级处理:8-1 窗口函数