查询至少选修了学生200215122选修的全部课程的学生号码

知识点:用exists和not exists实现逻辑蕴含

select distinct Sno
from SC x
where not exists(select *
				 from SC y
				 where y.Sno='200215122' and not exists(select *
				 										from SC z
				 										where z.Sno=x.Sno and z.Cno=y.Cno));

理解:1->2->3
1、找到一类学生,最低条件为必须选修了学号为200215122学生的全部课程,此外,还可以选修其他课程
2、只要是学号为200215122学生选修的课,该类学生都选修了
3、在该类学生中,不存在这样的学生,对于一门课程,学号为200215122的学生选修了,而他没有选修(双重否定表示肯定)

还可以通过谓词逻辑的转换来理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值