首页 小组 文章 相册 留言本 用户 搜索 我的社区 在线学堂 商城 购物车 支付钱包

[打卡]子查询

2024-05-08 15:16:41
0
200

#第八章 子查询

#需求:谁的工资比Abel高?

#方式一:
SELECT salary
from employees
where last_name='Able';

SELECT last_name,salary
from employees
where salary>11000;

#方式二:自连接
SELECT last_name,salary
from employees e1,employees e2
WHERE e2.salary>e1.salary #多表的连接方式
and e1.last_name='Able';

#方式三:子查询
SELECT last_name,salary
from employees
where salary > (
SELECT salary
from employees
where last_name='Able'
);

#称谓的规范:外查询(或主查询)、内查询(或子查询)
-- 子查询(内查询)在主查询之前一次执行完成
-- 子查询的结果被主查询(外查询)使用
-- 注意事项:1、子查询要包含在括号内
-- 2、将子查询放在比较条件的右侧
# 单行操作符对应单行子查询、多行操作符对应多行子查询
SELECT last_name,salary
from employees
where (
SELECT salary
from employees
where last_name='Able'
)
-- 子查询的分类
-- 角度1:从内查询返回的结果条目数
-- 单行子查询vs多行子查询(工资大于6000的姓名)
-- 角度2:内查询是否被执行多次
-- 相关子查询vs不相关子查询
-- 比如
-- 相关子查询的需求:查询工资大于本部门平均工资的员工信息
-- 不相关子查询的需求:查询工资大于本公司平均工资的员工信息

评论
意见反馈