标题:相关子查询和非相关子查询如何区别?
取消只看楼主
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
结帖率:79.3%
已结贴  问题点数:20 回复次数:3 
相关子查询和非相关子查询如何区别?
相关子查询和非相关子查询在代码中如何看出来?
搜索更多相关主题的帖子: 如何 
2015-05-09 12:04
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
见文:
子查询:嵌套在其他查询中的查询称之。
子查询又称内部,而包含子查询的语句称之外部查询(又称主查询)。
所有的子查询可以分为两类,即相关子查询和非相关子查询
1>非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
2>相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。
故非相关子查询比相关子查询效率高

2015-05-11 11:37
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
以下是引用taifu945在2015-5-11 15:40:37的发言:

明白了,楼主指的相关子查询其实就是我们常说的嵌套型子查询。在我写的书中P.144有过例子。
在foxpro入门手册2的何方?
2015-05-11 15:52
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
以下是引用taifu945在2015-5-12 07:51:53的发言:

正文第144页。
找到了:
SELECT CJB1.学号, CJB1.姓名, CJB1.课程名, CJB1.成
    FROM  成绩表  CJB1 ;
    WHERE CJB1.成绩= ;
        (SELECT MAX(CJB2.成绩) ;
            FROM  成绩表  CJB2 ;
            WHERE CJB1.学号=CJB2.学号)


我的意思如何快速区分出哪些是相关子查询,哪些不是?

[ 本帖最后由 sylknb 于 2015-5-12 09:28 编辑 ]
2015-05-12 09:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-445049-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102414 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved