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

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

相关推荐
运维行者_4 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
国强_dev4 小时前
技术探讨:使用 stunnel 加密转发数据库连接时,如何获取客户端真实 IP?
数据库·网络协议·tcp/ip
@insist1234 小时前
系统规划与管理师-信息系统规划核心工作要点解析
数据库·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
超级数据查看器5 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
数安3000天5 小时前
增量数据如何自动分类分级,避免目录“过期“?
大数据·数据库
南墙上的石头6 小时前
麒麟 V10 重装人大金仓 V8R6 踩坑实录(含 MySQL 兼容模式)
数据库·mysql
画中有画7 小时前
论向量数据库在项目中的应用
数据库
spider_xcxc7 小时前
Redis 数据库高质量实践指南(一)
运维·数据库·redis·oracle·云计算
l1t8 小时前
在linux和windows中解决duckdb 1.6dev版本输出执行计划报错问题
linux·运维·数据库·windows·duckdb
执子手 吹散苍茫茫烟波8 小时前
RC 隔离级别下 MySQL InnoDB 死锁典型案例
数据库·mysql