[考題] 94地特/資料庫

看板Examination作者 (我愛胖穎穎)時間11年前 (2013/03/21 16:16), 編輯推噓3(3011)
留言14則, 3人參與, 最新討論串1/1
課程(課程編號,課程名稱,學分) 老師(老師證號,老師姓名,導師班級,辦公室號) 學生(學生證號,學生姓名,班級) 學務(課程編號,老師證號,學生證號,成績,上課教室) 列出所有課程皆及格的學生的學生姓名 想要請問如果用not exists......not 去解可否寫成 select 學生姓名 from 學生 where not exists ( select * from 課程 where not exists( select * from 學務 where 學務.學生證號=學生.學生證號 and 學務.課程編號=課程.課程編號 and 學務.成績>=60 )) 有錯麻煩指教一下 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.136.183.245

03/21 16:30, , 1F
你這樣列 感覺會選出"至少有一科成績及格"的學生
03/21 16:30, 1F

03/21 16:32, , 2F
select 學生姓名 from 學生 where not exists (
03/21 16:32, 2F

03/21 16:33, , 3F
select * from 學務 where 學務.學生證號=學生.學生證
03/21 16:33, 3F

03/21 16:33, , 4F
and 學務.成績<60 )
03/21 16:33, 4F

03/21 16:34, , 5F
有錯請指正..
03/21 16:34, 5F

03/21 16:42, , 6F
難道這題不是在考FORALL的觀念嗎 @@
03/21 16:42, 6F

03/21 16:49, , 7F
所有課程皆及格的學生的學生姓名 感覺不用課程這張表
03/21 16:49, 7F

03/21 16:49, , 8F
因為學務裡面已經有課程編號了
03/21 16:49, 8F

03/21 17:04, , 9F
嗯嗯 你說得有道理
03/21 17:04, 9F

03/21 20:44, , 10F
第二個NOT EXISTS 是去除有任何一科有>=60的學生只顯示都
03/21 20:44, 10F

03/21 20:50, , 11F
是<60的學生,第一個NOT EXISTS 去除都<60的學生所以是顯
03/21 20:50, 11F

03/21 20:50, , 12F
示至少有一科>=60的學生
03/21 20:50, 12F

03/21 22:27, , 13F
我剛實際在MYSQL上跑 實際結果是會列出有修所有課程且及格的
03/21 22:27, 13F

03/21 22:28, , 14F
的學生姓名
03/21 22:28, 14F
文章代碼(AID): #1HIi7AcG (Examination)