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);

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

相关推荐
Pseudo…32 分钟前
MySQL数据库操作
数据库·mysql
格子衫-20031 小时前
MySQL中MVCC指什么?
数据库·mysql
小布不吃竹1 小时前
数据库连接池
java·数据库
码熔burning1 小时前
MySQL的Order by与Group by优化详解!
数据库·mysql
王天华帅哥1 小时前
重构 cluster-db 选择器,新增限制字段 showDb 不影响原功能前提实现查询功能增量拓展
数据库·重构
双叶8362 小时前
(51单片机)LCD显示红外遥控相关数字(Delay延时函数)(LCD1602教程)(Int0和Timer0外部中断教程)(IR红外遥控模块教程)
c语言·数据库·c++·单片机·嵌入式硬件·mongodb·51单片机
GUIQU.2 小时前
【MySQL】数据库、数据表的基本操作
数据库·mysql
CopyLower2 小时前
MySQL 5.7 之后的特性解析:从 8.0 到 8.4 的技术进化
数据库·mysql
一人一萧十只猫�3 小时前
MySQL 从入门到精通(三):日志管理详解 —— 从排错到恢复的核心利器
android·mysql·adb
chat2tomorrow3 小时前
数据中台建设系列(五):SQL2API驱动的数据共享与服务化实践
大数据·数据库·数据仓库·sql·数据治理·数据中台·sql2api