Student(SID, SName, SAge, Address) //學生(學號、姓名、年齡、地址)
Teacher(TID, TName, TAge, Office#) //老師(老師編號、姓名、年齡、辦公室)
Course(CID, CTitle, Credit) //課程(課程編號、課名、學分數)
Take(CID, TID, SID, Score) //修課(課程編號、老師編號、學生編號、分數)
請用SQL來回答下列問題。
(一) 請找出有那些學生,他們修了TName = “Harrison Ford” 這位老師所開設的所有課程,請列出這些學生的SName。(10分)
(二) 對於每一門學分數是3學分(含)以上(i.e., Credit>=3),而且有50個(含)以上的學生來修的課程,列出這些課程的名稱、授課老師,和該門課程裡,學生成績超過95分(含)的人數, 假設不會有二位老師
答:
(一)
SELECT S.SName
FROM Student S
WHERE NOT EXISTS (
)
(二)
SELECT C2.CTitle, T2.TName, COUNT (*)
FROM Course C2, Take A2, Teacher T2
WHERE C2.CID=A2.CID AND
T2.TID=A2.TID AND
A2.Score>=95 AND
C2.CID IN (
SELECT C1.CID
FROM Course C1, Take A1, Student S1
WHERE C1.Credit>=3 AND
S1.SID=A1.SID AND
C1.CID=A1.CID
GROUP BY C1.CID
HAVING COUNT(*)>=50
)
GROUP BY C2.CTitle, T2.TName


