Don*_*ett 4 sql database ms-access
说我有Person桌子和Courses桌子.在Person表格中我有专栏PersonName.在Courses表格中,假设我有CourseTitle,PersonName和CourseDifficulty.CourseDifficulty是1-4(4是最难的).如何从Person每个人返回一个人员列表中有一列显示他们正在接受的最困难的课程CourseTitle.
据我所知,我将通过以下方式获得Brett最困难的课程的课程标题:
SELECT CourseTitle
FROM Courses
WHERE PersonName = 'Brett'
AND CourseDifficulty = (SELECT MAX(CourseDifficulty)
FROM Courses
WHERE PersonName='Brett')
Run Code Online (Sandbox Code Playgroud)
但是如何为Person表中的每个人运行它?我希望结果是这样的
Brett-SQL For Dummies 4
Tim-Quantum Mechanics
Jane-Thermodynamics 2
Run Code Online (Sandbox Code Playgroud)
抱歉,这是一个noobness.在此先感谢您的帮助!
你可以使用以下
SELECT p.name ,p.address, c.courseTitle ,c.courseDifficulty FROM (
SELECT personName, courseTitle, MAX(courseDifficulty) AS courseDifficulty
FROM course
GROUP BY personName
) AS c RIGHT JOIN person AS p ON p.name = c.personName
Run Code Online (Sandbox Code Playgroud)
这里假设personName是唯一的.否则,您可以在此处使用唯一ID而不是人名,并在select语句中添加此字段.