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

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

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


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

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

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

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


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

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

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

 

posted @ 2020-01-23 11:05  Marlon康  阅读(215)  评论(0编辑  收藏  举报