怎么查詢至少選修了 某個學生選修的所有課程


表結構如下:表名 SC
 
學號(sno)    選修的課程號(cno)
111              1
111              2
111              3
112              1
112              2


如何查詢至少選修了 112學生選修的所有課程 的學生 ,真心求解

8 个解决方案

#1


哥們,你還是學生吧? 是不是老師布置的作業呢?

select distinct sno from sc scx
 where not exists
  (select 1 from sc scy
    where scy.sno='112' and
          not exists
          (select 1 from sc scz
            where scz.sno=scx.sno and
                  scz.sno=scy.sno));
          

#2


select t.sno
  from sc t
 where t.cno >= all (select m.cno from sc m where m.sno = '112')
   and t.sno <> '112'
一定是學生啦,大學的數據庫書上就這么一個例子~~

#3


select sno from sc where sc.cno in(select cno from sc where sno = '112');

#4


至少是有一個就行還是必須包含所有的?

#5


select sno from sc where sc.cno in(select cno from sc where sno = '112');

#6


是要 包含所有的

#7


你這個語句 如果我有這樣一條數據
113              2

113這個學生也會被查出來的, 但是113 只選了 2號課程,並沒有包含 112所選的全不課程

#8



濃濃的作業范兒

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: