我有两张桌子,学生和学年的。
students
---------
ID Name
---------
1 ABC
2 XYZ
school_year
-----------
ID student_id grade year
--------------------------
1 1 5 2011
2 1 6 2012
3 2 1 2010
4 2 2 2011
5 2 3 2012
我加入他们得到这个结果
select s.*, sy.grade, sy.year
from students s
left join school_year sy
on s.id=sy.student_id
order by s.name
我得到这个结果
id name grade year
---------------------------
1 ABC 5 2011
1 ABC 6 2012
2 XYZ 1 2010
2 XYZ 2 2011
2 XYZ 3 2012
我想参加学年表,学生的分数最高/最高,所以表看起来像这样。
id name grade year
-------------------------
1 ABC 6 2012
2 XYZ 3 2012
请帮忙。谢谢。
最佳答案
试试这个:
SELECT s.id, s.name, sy1.grade, sy1.year FROM school_year sy1
LEFT JOIN school_year sy2
ON sy1.student_id = sy2.student_id AND sy1.grade < sy2.grade
JOIN students s ON sy1.student_id = s.id
WHERE sy2.grade IS NULL
小提琴here。
关于sql - 以Oracle最高的值(value)加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19547082/