永发信息网

not exists在嵌套子查询中如何理解?

答案:5  悬赏:0  手机版
解决时间 2021-04-03 01:23
not exists在嵌套子查询中如何理解?
最佳答案
not exists (sql 不返回结果集为真)
如下: 
表A 
ID NAME 
1    A1 
2    A2 
3  A3 

表B 
ID AID NAME 
1    1 B1 
2    2 B2 
3    2 B3 
SELECt ID,NAME FROM A WHERe NOT EXIST (SELECt * FROM B WHERe A.ID=B.AID) 
执行结果为 
3 A3
全部回答
select * from 课程 这个结果集
在select * from 选读 where 学号=学生.学号 and 课程号=课程.课程号)) 结果集中不存在;
具体的打开查询分析器 按 F1 在关键字处 键入exists
回车 就可以看到他的具体用法
代码应该如下:
select 学生.姓名 from 学生
where not exists(
select * from 课程 where not exists(
select * from 选读 where 学号=学生.学号 and 课程号=课程.
exists是查找一张表的数字集,而not exists是数字集的反集.如果子查询不返回行,那么使用 NOT EXISTS 的 WHERe 子句会得到令人满意的结果。
要查找不出版商业书籍的出版商的名称:
USE pubs
SELECt pub_name
FROM publishers
WHERe NOT EXISTS
(SELECt *
FROM titles
WHERe pub_id = publishers.pub_id
AND type = 'business')
下面是结果集:
pub_name
简单说,就是查询没有选课的学生的姓名。
现在我们从后面的子查询向前分解:
1.所有未选过的课程的数据集:
select * from 课程 where not exists(
select * from 选读 where 课程号=课程.课程号)
2.所有没被某位学号为 @学号 的学生选过的课程的记录集(@学号学生的未选课程):
select * from 课程 where not exists(
select * from 选读 where 学号=@学号 and 课程号=课程.课程号)
请注意,多出了学号的筛选即,学号=@学号。
3.遍历每一个主查询的学号,每一个学号都按第二筛选方法筛选出:没有未选课程的学生的学号。(不包括在第查询方法查询出的“有未学课程的学号的记录集”中的记录。)
请注意:用主查询中的 学生.学号 代替了@学号。
select 学生.姓名 from 学生
where not exists(
select * from 课程 where not exists(
select * from 选读 where 学号=学生.学号 and 课程号=课程.课程号))
这已经是整个查询语句,可以看出子查询中用学生.学号替换了第2步中的 @学号,(没忘了吧,第二步求的是没有选修全部课程的某个学生)。
用上面的讲解方法不知道是不是更好理解一点。
===============
针对您最后的补充:
为什么不用
from 学生,课程,选读?
答:因为from 学生,课程,选读 也就是
SELECt * FROM 学生,课程,选读 WHERe .....条件
这样的型式只能组成内联接,而内联接我们只知道,只有三个表按联接条件都符合才会被选中,而我们要的是有不符合后面两表的的学生才符合条件,所以用内联接是不可行的。
要不然where句怎么可以调用三个关系的属性呢?
答:在SQL SERVER中规定:所有子表都是可以通过表名调用其上面任意层次的表中的字段的。所以,不是只有内联接才可以调用多个表的属性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金庸群侠传3.加强版里四十二章经8本怎么凑齐
养车求财怎么拜神仙
秀珍菇怎么炒来好吃
300豪升水是多少
联想y430p可以外加一个内存条吗?我的是4G的
人生四大毒,贪,痴,缜,执,但是可怜的是这
单选题They'reonlykids,buttheycanwork
兰勃琳的简历,及他从事的职业,现在是不是传
假如崖山海战后 南宋退守吕宋岛
谁知道2014年显卡排行榜?一一列出来。
csol怎么敬礼
含有日月的诗句有那些
歼8D,歼7E,歼10,歼11,枭龙这些飞机作战时
放下昨天珍惜今天期待明天
天顺亲子园地址在什么地方,想过去办事,
推荐资讯
stm32红外人体检测
龋齿的预防措施
请解释一下平仄脚?
含碳元素的物质种类很多,请各选一种含碳的纯
北京市顺义区石园街道办事处五里仓第一社区居
斗鱼实名认证可以注销吗
196297一百元算生日号人民币吗?
第一批录取本科院校可以报二本吗
表单是什么
可以告诉我三国杀里所有的神武将吗?
单选题下列有关文学常识的叙述,有错误的一项
sen.1982是一枚硬币,上面面值10
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?