MySQL专题五——子查询

子查询

举例

查找出工资比Abel高的员工名字和工资

方式一 多次查询

SELECT salary `salary_abel` FROM employees WHERE last_name = 'Abel';
SELECT last_name, salary FROM employees WHERE salary > salary_abel;

方式二 自连接

SELECT e2.last_name, e2.salary FROM employees e1 , employees e2 WHERE e2.salary > e1.salary AND e1.last_name = 'Abel';

方式三 子查询

SELECT last_name,salary FROM employees WHERE salary > (
	SELECT salary FROM employees WHERE last_name = 'Abel'
);

子查询

规范称谓

外查询(或主查询)/ 内查询(或子查询)

子查询的使用

子查询 在主查询之前执行

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

注意事项

  • 子查询要包含在括号内
  • 将子查询放在比较条件的右侧(保证可读性和美观性)
  • 单行操作符对应单行子查询,多行操作符对应多行子查询

子查询的分类

角度一单行子查询 VS 多行子查询

按照内查询的结果返回一条还是多条记录,将子查询分为 单行子查询多行子查询

角度二相关(或关联)子查询不相关(或非关联)子查询

按照内查询是否被执行多次,将子查询分为 相关(或关联)子查询 和 不相关(或非关联)子查询

比如:相关子查询的需求:查询工资大于本部门平均工资的员工信息(外查询和内查询具有关联性,内查询执行次数和外查询相关)

不相关子查询的需求:查询工资大于本公司平均工资的员工信息(外查询和内查询不具备关联性,一次执行内查询即可完成所有外查询)

单行子查询

单行操作符

= != > >= < <=

题目

查询与141号员工 manager_id和department_id相同的其他员工的 employee_id, manager_id, department_id

分析:与141号相同的 manager_id , department_id ;其他员工;

答案:

方式1:

SELECT employee_id, manager_Id, department_id FROM employees 
WHERE 
manager_id = (S
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值