试一下select xh from cj as c1 where not exists(
   select * from cj as c2 where c2.xh='002' and not exists (
          select * from c1,c2 where c1.xh=c2.xh  ))

解决方案 »

  1.   

    select xh from cj as c1 where not exists(
       select * from cj as c2 where c2.xh='002' and not exists (
              select * from c1,c2 where c1.kch=c2.kch  ))上面吧学号跟课程号搞错了
      

  2.   

    select cj.xh from cj where cj.kch in (select a.kch from cj a where a.kch='002')
      

  3.   

    select xh from cj where xh <>'001' and kch  in (select kch  from cj where xh='002') group by xh  having sum(1)>=(select sum(1) from cj where xh ='002')
      

  4.   

    select distinct xh from cj where kch in (select kch from cj where xh='002')
      

  5.   

    不对呀。不能用in吧?如果是in则包括的是002所学课程的任意一门就可以了。而现在要求的是包括002所学全部课程呀。小黑的
    select xh from cj where xh <>'001' and kch  in (select kch  from cj where xh='002') group by xh  having sum(1)>=(select sum(1) from cj where xh ='002')
    为什么xh<>'001'呢?
    上面显示cj的记录只是为了说明cj的结构。其实里面内容可以改动。改动后该语句应该还可通用才对。