15.1.子查询的概念
子查询就是指一个“正常查询语句”中的某个部分(比如select部分,from部分, where部分)又出现了查询的一种查询形式,比如:
select * from XX表名 where price >= (一个子查询语句);
此时,子查询所在上“上层查询”,就被称为主查询。
也可以这么说:子查询是为主查询的某个部分提供某种数据的查询。比如一个商品表中的平均价(需要计算、统计的)
上一条语句中,括号中的子查询语句如果查出的是一个“某个数值”(比如3000),则其就相当于:
15.2.标量子查询
含义:
标量子查询就是指子查询的结果是“单个值”(一行一列)的查询。
使用:
标量子查询通常用在where子句中,作为主查询的一个条件判断的数据。
本质上,标量子查询的结果,就可以直接当做“一个值”来使用。
找出产品表中价格大于北京产地的产品平均价的所有产品。
-- 子查询:
找出产品表中价格大于北京产地的产品平均价的所有产品。
select * from product where price > (
#查询出北京产地所有产品的平均价
select avg(price) from product where chandi='北京'
);
课堂练习:找出所有奢侈品!
select * from product where price > (
#找出贵重品的平均价
select avg(price) from product where price > (
#去找出所有商品的平均价
select avg(price) from product
)
);