2017-04-13 56 views
0

需要得到内部连接等级的最大值的帮助。如何用3个内连接获得最大值?


代码:

SELECT StudFirstName, StudLastName, sc.ClassID, sub.SubjectID, sub.CategoryID, Grade 
FROM SS_Students as st INNER JOIN SS_Student_Schedules as ss 
ON st.StudentID = ss.StudentID 
INNER JOIN SS_Classes as sc 
ON ss.ClassID = sc.ClassID 
INNER JOIN SS_Subjects as sub 
ON sc.SubjectID = sub.SubjectID; 

只需要获得甲级最高值,因此产量将下降缩短1行。

+0

您可以使用'SELECT MAX(年级)FROM ...' –

+1

@Nish Patel您只想要最大值,或者您想要完整的详细信息,哪个学生获得最高等级和主题详细信息? –

+0

ORDER BY grade DESC LIMIT 1;否则,请参阅https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql - 查询 – Strawberry

回答

0

你应该使用group by和max喜欢:

SELECT StudFirstName, StudLastName, sc.ClassID, sub.SubjectID, sub.CategoryID, MAX(Grade) 
FROM SS_Students as st INNER JOIN SS_Student_Schedules as ss 
    ON st.StudentID = ss.StudentID 
INNER JOIN SS_Classes as sc 
    ON ss.ClassID = sc.ClassID 
INNER JOIN SS_Subjects as sub 
    ON sc.SubjectID = sub.SubjectID 
GROUP BY StudFirstName, StudLastName, sc.ClassID, sub.SubjectID, sub.CategoryID 

这会给你的学生名单和最大等级为每个学生。