免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1439 | 回复: 3
打印 上一主题 下一主题

SQL语句问题,请教各位大大! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-23 11:18 |只看该作者 |倒序浏览
有如下表
S(S#,SNAME)    ※※ 学生表(学号,姓名)
C(C#,CNAME)   ※※课程表(课程号,课程名)
SC(S#,C#,GRADE)    ※※ 成绩表(学号,课程号,成绩)

现要求检索学习全部课程的学生姓名,请问是否可用如下的SELECT 语句:

SELECT SNMAE FROM S WHERE  EXISTS
               (SELECT * FROM C WHERE  EXISTS
                             (SELECT * FROM SC WHERE
                                                   SC.S#=S.S# AND SC.C#=C.C#))



请指教,谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-07-23 12:13 |只看该作者

SQL语句问题,请教各位大大!

select s#
   from s
where s# not in(  
   select s#
        from s,c
     where (s#,c#) not in (select s#,c#
                                           from sc))

论坛徽章:
0
3 [报告]
发表于 2003-07-23 16:07 |只看该作者

SQL语句问题,请教各位大大!

实际建表试了一下,不行!我的SELECT 语句找出的是选了课的学生姓名。还是应该用
SELECT SNAME FROM S WHERE NOT EXISTS
   (SELECT * FROM C WHERE NOT EXISTS
          (SELECT * FROM SC WHERE
                                  SC.S#=S.S# AND SC.C#=C.C#))

论坛徽章:
0
4 [报告]
发表于 2003-07-23 16:33 |只看该作者

SQL语句问题,请教各位大大!

SELECT * FROM S WHERE EXISTS( select s# from sc WHERE SC.S#=S.S# group by s# having count(c#) = (select count(*) from c));
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP