SQL基础教程(第2版)第5章 复杂查询:5-3 关联子查询
第5章 复杂查询:5-3 关联子查询
● 关联子查询会在细分的组内进行比较时使用。
● 关联子查询和GROUP BY子句一样,也可以对表中的数据进行切分。
● 关联子查询的结合条件如果未出现在子查询之中就会发生错误。
■ 普通的子查询和关联子查询的区别
按此前所学,使用子查询就能选取出销售单价(sale_price)高于全部商品平均销售单价的商品。
这次我们稍稍改变一下条件,选取出各商品种类中高于该商品种类的平均销售单价的商品。
这样大家就能明白该进行什么样的操作了吧。我们并不是要以全部商品为基础,而是要以细分的组为基础,对组内商品的平均价格和各商品的销售单价进行比较。
■ 使用关联子查询的解决方案
这样我们就能选取出办公用品、衣服和厨房用具三类商品中高于该类商品的平均销售单价的商品了。
这里起到关键作用的就是在子查询中添加的 WHERE 子句的条件。该条件的意思就是, 在同一商品种类中对各商品的销售单价和平均单价进行比较。
这次由于作为比较对象的都是同一张 Product 表,因此为了进行区别,分别使用了 P1 和 P2 两个别名。在使用关联子查询时,需要在表所对应的列名之前加上表的别名,以“< 表名 >.< 列名 >”的形式记述。
■ 关联子查询也是用来对集合进行切分的
■ 结合条件一定要写在子查询中
部分内容来自于学习编程期间收集于网络的免费分享资源和工作后购买的付费内容。
如需获取教程配套的资源文件和一对一专属答疑支持,请加vx:kangmf24联系作者。