表学期:
semesterID startDate
1 2013-01-01
2 2013-03-01
3 2013-06-01
表类:
classID class_title semesterID
1 Math 1
2 Science 1
3 Math 2
4 Science 2
5 Math 3
6 Science 3
餐桌人:
personID firstName lastName
1 John Jones
2 Steve Smith
表class_person:
classID personID
1 1
2 1
5 1
6 1
3 2
4 2
5 2
6 2
我需要列出所有人的名单,包括他们上课的第一个学期(开始日期最早的学期)。
firstName, lastName, semesterID, startDate
John Jones 1 2013-01-01
Steve Smith 2 2013-03-01
我花了几个小时试图弄清楚这一点。这是我得到的最接近的(虽然它根本不接近!):
SELECT p.firstName, p.lastName, MIN(s.startDate) AS min_startDate
FROM semesters s
INNER JOIN classes c ON s.semesterID = c.semesterID
INNER JOIN class_person cp ON cp.classID = c.classID
INNER JOIN persons p ON p.personID = cp.personID
GROUP BY cs.personID
ORDER BY min_startDate, p.lastName, p.firstName
任何帮助将不胜感激。谢谢你。