SQL相关子查询

之前了解过一点相关子查询概念,还不熟悉;

相关子查询:先执行主查询,再针对主查询返回的每一行数据执行子查询,如果子查询能够返回行,则这条记录就保留,否则就不保留。

看一下;查询所有是领导的员工信息;

select * from emp e1 where exists (select * from emp e2 where e1.empno=e2.mgr);

这句是相关子查询;看上去应该是它的子查询里面包括2个表的一个字段的比较,要使用exists;

这个相关子查询也可以写为非相关子查询;

select * from emp where EMPNO in (select mgr from emp);

sql 复制代码
insert into emp (ename, job, mgr, hiredata, salary, deptno) values ('李一','技术部经理', 0, '',22000, 1);
insert into emp (ename, job, mgr, hiredata, salary, deptno) values ('李二','工程师', 1, '',12000, 1);
insert into emp (ename, job, mgr, hiredata, salary, deptno) values ('李三','初级工程师', 1, '',2000, 1);
insert into emp (ename, job, mgr, hiredata, salary, deptno) values ('李四','市场部经理', 0, '',18000, 2);
insert into emp (ename, job, mgr, hiredata, salary, deptno) values ('王一','业务员', 4, '',8000, 2);

select * from emp;

select * from emp e1 where exists (select * from emp e2 where e1.empno=e2.mgr);

select * from emp where EMPNO in (select mgr from emp);

应该是除了相关子查询之外的子查询都是非相关子查询;

相关推荐
qq_3392822316 分钟前
postgressql 如何修改模式的所有表的所有者
数据库
西岭千秋雪_1 小时前
Redis性能优化
数据库·redis·笔记·学习·缓存·性能优化
极限实验室1 小时前
INFINI Labs 产品更新 | INFINI Console 1.29.6 发布 – 优化监控图表异常毛刺等
数据库·产品
先睡1 小时前
优化MySQL查询
数据库·sql
小张是铁粉2 小时前
oracle的内存架构学习
数据库·学习·oracle·架构
专注API从业者2 小时前
构建淘宝评论监控系统:API 接口开发与实时数据采集教程
大数据·前端·数据库·oracle
藏在歌词里2 小时前
数据库-元数据表
数据库
小乌龟不会飞3 小时前
Ubuntu 安装 etcd 与 etcd-cpp-apiv3
数据库·etcd
古月居GYH6 小时前
【数据分析】如何在PyCharm中高效配置和使用SQL
ide·sql·pycharm