#思路:根据每种语言分组排序(用dense_rank),跟第二张表连接,取出排序<=2的数据即可。 select tb1.id, name, score from (select id, language_id, score, dense_rank()over(partition by language_id order by score desc) r from grade) as tb1 left join language on tb1.language_id=language.id where r<=2 order by name, score desc, id