oracle关联子查询的执行过程

谁能帮我解释一下关联子查询的过程?弄了好久也没有弄明白,内外的值传来传去的不明白啊。以—显示部门名称,及部门人数SELECTdname部门名称,(selectc... 谁能帮我解释一下关联子查询的过程?弄了好久也没有弄明白,内外的值传来传去的不明白啊。

—显示部门名称,及部门人数
SELECT dname 部门名称,(select count(*) from emp where emp.deptno = dept.deptno) 人数 FROM dept;

为例帮我解释一下吧,要详细的过程,谢谢了。
展开
 我来答
yaozw_mountain
推荐于2017-09-02 · 超过18用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:27.4万
展开全部
SQL 是面向目标的描述语言,其实不侧重实现过程的,那是数据库查询引擎实现的。
这个查询用了关联子查询,对应结果集是表示 部门的记录集,
而每个部门 通过关联子查询来返回 员工人数,对应每条部门记录, 子查询条件参数emp.deptno 取值是相应的 dept.deptno,
意思是 对于每行的部门记录的 dept.deptno ,子查询 返回相应的 count(*)
这里的子查询必须是单列,每次返回结果集最多一行。
泽清娉
2014-09-03 · 超过34用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:37.6万
展开全部
SELECT dname 部门名称,
(select count(*) from emp where emp.deptno = dept.deptno) 人数
FROM dept;
/*
*其实也就是把子查询放在了外部查询的查询结果里面了
*而把子查询剥离出来就如下语句
*/
select count(*) from emp where emp.deptno in (select dept.deptno from FROM dept)
--子查询的where中有部分数据是从外部数据里面抽取出来的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沉默小辉Jh5
2014-09-03 · TA获得超过177个赞
知道答主
回答量:131
采纳率:0%
帮助的人:164万
展开全部
全表扫描,依次判断每条记录的sal是否大于子查询中得到的该职位的平均工资
满意请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式