データベース モデリング コースの次のスキーマを検討してください。
DEPARTMENT (やった、名前)、
COURSE (cid, did, name, num, creditHours),
STUDENT (sid、fname、lname、did)
ENROLLED_IN (eid、sid、cid)
すべての COMP コース (DEPARTMENT.name="COMP") に登録しているすべての学生の姓名をリストします。
データベース モデリング コースの次のスキーマを検討してください。
DEPARTMENT (やった、名前)、
COURSE (cid, did, name, num, creditHours),
STUDENT (sid、fname、lname、did)
ENROLLED_IN (eid、sid、cid)
すべての COMP コース (DEPARTMENT.name="COMP") に登録しているすべての学生の姓名をリストします。
GROUP BY を HAVING 句とともに使用して、登録されている COMP コースの数をアサートします。
SELECT s.fname, s.lname
FROM STUDENT s
JOIN ENROLLED_IN e ON s.sid = e.sid
JOIN COURSE c ON e.cid = c.cid
JOIN DEPARTMENT d ON c.did = d.did
WHERE d.name = 'COMP'
GROUP BY 1, 2
HAVING COUNT(*) = (
SELECT COUNT(*)
FROM COURSE c
JOIN DEPARTMENT d ON c.did = d.did
WHERE d.name = 'COMP')
結合してこれを試してください
SELECT s.* FROM STUDENT s
JOIN ENROLLED_IN e ON (s.sid = e.sid)
JOIN DEPARTMENT d ON(s.did = d.did)
JOIN COURSE c ON(d.did = c.did)
WHERE d.name="COMP"