create table S(
    sID varchar2(10),
    SN varchar2(10),
    SCAL varchar2(10)
);
create table C(
    cID varchar2(10),
    CN varchar2(10)
);
create table SC(
    sID varchar2(10),
    cID varchar2(10),
    score number
);
1.嵌套查询选修"计算机"课程的学生编号和姓名
2.嵌套查询选修课程大于3门的学生信息
3.嵌套查询学生"小明"选修的课程

解决方案 »

  1.   

    1、select s.sid,s.sn   from s ,c,sc where s.sid=sc.sid and c.cid=sc.cid and c.cn='计算机';2、select s.* from (select s.sid stid,count(s.sid) co   from s ,c,sc where s.sid=sc.sid and c.cid=sc.cid group by s.sid) a,s
          where a.co=3 and a.stid=s.sid;
    3、select c.*  from s ,c,sc where s.sid=sc.sid and c.cid=sc.cid and s.sn='小明';
    请指教。
      

  2.   

    select s.sID,s.sn from s where s.sID = (select sc.sID from sc where sc.cID = (select cID from c where c.cn = '计算机'))想通过这个方式实现呢? 但上面这个语句是错的.后面的两个嵌套是对的.
      

  3.   

    把“=”换成 In就好了
    就是效率低于使用EXISTS   和 关联