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

[打卡]快乐才是初衷

2024-05-08 15:16:54
0
170

-- 谁的工资比Abel高
-- 方式一
SELECT salary
FROM employees
WHERE last_name='Abel';

SELECT last_name,salary
FROM employees
WHERE salary>11000;

-- 方式2 自连接
SELECT e2.last_name ,e2.salary
FROM employees e1,employees e2
WHERE e2.salary >e1.salary
AND e1.last_name='Abel';

-- 方式3 子查询
SELECT last_name,salary
FROM employees
WHERE salary>(
SELECT salary
FROM employees
WHERE last_name='Abel'
);

-- 称谓的规范外查询(主查询)和内查询(子查询)
/*
子查询(内查询)在主查询之前一次执行完成

子查询的结果被主查询(外查询)使用

注意事项

子查询要包含在括号内

将子查询放在比较条件的右侧

单行操作符对应单行子查询,多行操作符对应多行子查询
万物不及桐神
*/

SELECT last_name,salary
FROM employees
WHERE (
SELECT salary
FROM employees
WHERE last_name='Abel')
/*
子查询的分类
角度1:从内查询返回的结果条目数

单行子查询 vs 多行子查询 (工资大于6000的姓名)

角度2:内查询是否被执行多次
相关子查询 VS 不相关子查询
比如
相关子查询的需求:查询工资大于本部门平均工资的员工信息
不相关子查询的需求:查询工资大于本公司平均工资的员工信息
/*

评论
意见反馈