子查询定义:在外部SQL语句内部使用SELECT语句,这条SELECT语句称为子查询
子查询类型:
单行子查询:对外部SQL要么不返回结果,要么只返回一行。单行子查询特殊情况:是这号查询一列,这种子查询被称为
“标量子查询”
多行子查询:向外部SQL语句返回一行或多行
而子查询又可以分为:
多列子查询:向外部SQL语句返回队列
关联子查询(correlated sbuquery):通过相同的列与外部的SQL语句相关联(引用外部SQL语句的一列或多列)
嵌套子查询:位于另一个子查询中
6.2 编写单行子查询(可放到where/ having/ from子句中)
1. 放到where子句中
select first_name ,last_name
from customers
where customer_id=
(select customer_id
from customers
where last_name="brown");
where子句中的这个子查询先执行,返回last_name="brown"行的id 再将之传给外部的where子句 再执行外部查询
使用其它操作符:<,<=,>,>=
例如
select product_id, name, price
form products
where prict>
(select avg(price)
from products)
2在having子句中使用子查询
having子句的作用:对行组进行过滤,在外部查询的having子句中使用子查询:having子句基于子查询返回
的结果对行组进行过滤
时间: 2024-11-09 05:51:14