子查询分类:

  1. 按位置分:select (只能跟标量子查询)<br /> from (支持表子查询) <br /> wherehaving后面<br /> (支持标量子查询 行子查询 列子查询)
  2. 按结果集分类:<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