数据库检索

半世苍凉 提交于 2019-12-02 19:28:45

问题

检索选修所有课程的学生的学号

解决方案

SELECT SN FROM S WHERE NOT EXISTS
(SELECT * FROM C WHERE NOT EXISTS
(SELECT * FROM SC WHERE SC.CNO=C.CNO AND SC.SNO=S.SNO));

解释

  1. EXISTS 子查询找到的提交
    NOT EXISTS 子查询中 找不到的提交
  2. 建立程序循环的概念,这是一个动态的查询过程,如 FOR循环
%伪代码
for S =1:m
    for C = 1:n
        if S has C, None
        else, 记录 S
%S现在为没有选择全部课程的学生
return S 的补集
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!