子查询分类:
按位置分:select (只能跟标量子查询)<br /> from (支持表子查询) <br /> where或having后面<br /> (支持标量子查询 行子查询 列子查询)按结果集分类:<br /> 标量子查询(结果集为一行一列)<br /> 列子查询 (多行子查询)<br /> 行子查询 (多列多行)
一、where或having后面
1.标量子查询(单行子查询)
#2.列子查询 (多行子查询)
#3.行子查询 (多列多行)
#特点: ①子查询放在小括号内
# ②子查询一般放在条件右侧
# ③标量子查询,一般搭配着单行操作符使用
#列子查询,一般搭配着多行操作符使用
1.标量子查询
#案例1:谁的工资比Abel高?
#第①步:先查询员工的工资
SELECT `salary`
FROM `employees`
WHERE `last_name`='Abel';
#第②步:查询员工的信息,满足salary>①的结果
SELECT *FROM `employees`
WHERE salary>(
SELECT `salary`
FROM `employees`
WHERE `last_name`='Abel' #注意这里的括号里面结束不用带分号
)
#案例2:返回job_id与141号员工相同,salary比143号员工多
# 的员工姓名,job_id和工资
SELECT`job_id`FROM`employees`
WHERE `employee_id`=115;
SELECT`salary`FROM`employees`
WHERE `employee_id`=143;
SELECT `last_name`,`job_id`,`salary`FROM employees
WHERE job_id=(
SELECT`job_id`
FROM`employees`
WHERE `employee_id`=115)
AND salary>(
SELECT`salary`
FROM`employees`
WHERE `employee_id`=143)
2.列子查询
in any all
