查詢選修了至少選修了200515122選修的全部課程的學生學號。


數據表結構為:
create table 選課表
(
學號 varchar(9) Foreign Key references 學生表(學號),
課程編號 Varchar(8) Foreign Key references 課程表(課程編號),
成績 smallint
)

求查詢選修了至少選修了200515122選修的全部課程的學生學號。該怎么查啊???

8 个解决方案

#1



select * from  選課表 t 
where not exists 
( select 1 from 選課表 where 學號='200515122' and 課程編號 not in (select 課程編號  from 選課表 where 學號=t.學號)) 

#2


lz的話沒看懂

#3


不好意思,沒有說清楚哈。
求查詢至少選修了200515122選修的全部課程的學生學號。該怎么查啊???

#4


二樓的代碼不行啊。

#5


select distinct 學號 from  選課表 t 
where not exists 
( select 1 from 選課表 where 學號='200515122' and 課程編號 not in (select 課程編號  from 選課表 where 學號=t.學號)) 

#6


引用 4 樓 jianqifeihong 的回復:
二樓的代碼不行啊。

是什么問題

#7


SELECT DISTINCT Sno FROM 選課表 SCX WHERE NOT EXISTS
                      (SELECT * FROM 選課表 SCY WHERE SCY.學號='200215122' AND NOT EXISTS
                            (SELECT * FROM 選課表 SCZ WHERE SCZ.學號=SCX.學號 AND SCZ.課程編號=SCY.課程編號));

#8


引用 7 樓 waylife 的回復:
SELECT DISTINCT Sno FROM 選課表 SCX WHERE NOT EXISTS
                      (SELECT * FROM 選課表 SCY WHERE SCY.學號='200215122' AND NOT EXISTS
                            (SELECT * FROM 選課表 SCZ WHERE SCZ.學……
是這個,但是為什么呢?

注意!

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



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