社区
疑难问题
帖子详情
exists在SQL中的执行过程具体是什么?(分不多,希望有人给点建议,我好郁闷)
Owenini
2009-01-10 12:01:37
select * from stuInfo (学生信息表) where exists
(select * from stuMarks(学生成绩表)
where stuInfo.stuId = stuMarks.stuId)
貌似这能查出参加考试的学生信息,请高手诉说具体执行步骤好吗?
...全文
96
2
打赏
收藏
exists在SQL中的执行过程具体是什么?(分不多,希望有人给点建议,我好郁闷)
select * from stuInfo (学生信息表) where exists (select * from stuMarks(学生成绩表) where stuInfo.stuId = stuMarks.stuId) 貌似这能查出参加考试的学生信息,请高手诉说具体执行步骤好吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fcuandy
2009-01-10
打赏
举报
回复
select * from ta a where exists(select 1 from tb where a.id=b.id)
每扫ta一行,都扫tb,遇到匹配即返回ture,对tb的扫描在ta当前行不再继续下去,如果一直没找到,就会扫完tb (索引,或表扫),对ta的第一条记录处理完后, ta行下移,继续执行子查询,就这样继续下去,一直到ta所有记录都进行完。即,对应ta的每行,都会执行子查询
这是语义逻辑上的。
至于具体怎么执行,要看查询计划。
dawugui
2009-01-10
打赏
举报
回复
[Quote=引用楼主 wjy503977212 的帖子:]
select * from stuInfo (学生信息表) where exists
(select * from stuMarks(学生成绩表)
where stuInfo.stuId = stuMarks.stuId)
貌似这能查出参加考试的学生信息,请高手诉说具体执行步骤好吗?
[/Quote]
类似:
select m.*
from stuInfo m , stuMarks n
where m.stuId = n.stuId
意即存在两表stuId相同的数据.
不过你的查询不如我写那个快.
疑难问题
22,209
社区成员
121,731
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章