子查询
子查询
一.含义
二.分类
1、按出现位置
1.1 select后面:
仅仅支持标量子查询
from后面:
表子查询
1.2 where或having后面:
标量子查询
列子查询
行子查询
1.3 exists后面:
标量子查询
列子查询
行子查询
表子查询
2、按结果集的行列
标量子查询(单行子查询):结果集为一行一列
列子查询(多行子查询):结果集为多行一列
行子查询:结果集为一行多列
表子查询:结果集为多行多列
个人理解
结果集当做一个教室
标量 当做 讲台 一行一列
列 当做 一列学生 多行一列
行 当做 一行学生 一行多列
表 单过 所有学生 多行多列
三、示例
1.where或having后面
1.1标量子查询
#谁的工资比Abel高
##①查Abel的工资
SELECT salary FROM employees
WHERE last_name ='Abel';
##②筛选
SELECT last_name,salary
FROM employees
WHERE salary>(
SELECT salary FROM employees
WHERE last_name ='Abel'
);
1.2列子查询
1. 3行子查询
2.select后面
一般其他方式也能实现,不怎么实用,太别扭
3.from后面
、