[SQL ] 兩層NOT EXISTS

看板Database (資料庫)作者 (......)時間13年前 (2012/10/21 20:24), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
SELECT S.SID,S.SName FROM Student S WHERE NOT EXISTS( SELECT * FROM Teacher TE, Take T1 WHERE TE.TName='Oxford John' AND TE.TID=T1.TID AND NOT EXISTS( SELECT * FROM Take T2 WHERE T2.SID=S.SID AND T2.CID=T1.CID)) 上面是要找出有修Oxford John這位老師開的全部課程的學生的編號跟姓名 請問兩層not exists到底要怎麼理解呢 要怎麼用資料表去推出來 我想了好久覺得一點都兜不上 請各位大大解答吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.252.242.81

10/22 09:36, , 1F
後面的not exists是找出沒有修Oxford John開的課的人
10/22 09:36, 1F

10/22 09:37, , 2F
上面的not exists就全部扣掉沒有修Oxford John開的課的人
10/22 09:37, 2F

10/22 09:37, , 3F
所以就是有修Oxford John開的課的人
10/22 09:37, 3F
文章代碼(AID): #1GW-boqA (Database)
文章代碼(AID): #1GW-boqA (Database)