Sql 以Oracle中最高的价值加入
我每年有两张桌子,学生和学生Sql 以Oracle中最高的价值加入,sql,database,oracle,Sql,Database,Oracle,我每年有两张桌子,学生和学生 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
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
我得到了这个结果
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
选择s.id、s.name、sy1.grade、sy1.year FROM school\u year sy1
左入学校(二年级)
关于sy1.student\u id=sy2.student\u id和sy1.grade
小提琴