Как получить звание определенного пользователя в конкретном предмете для всех испытуемых, признанных связями

--------------------------------------------------------------------- id | stid | Subject | Total_cumulative | Year | ---------------------------------------------------------------------- 1 | 23 | English | 40 | 2014/2015 2 | 1 | English | 29 | 2014/2015 3 | 13 | Maths | 40 | 2014/2015 4 | 4 | Physics | 60 | 2014/2015 5 | 13 | Commerce | 40 | 2014/2015 6 | 1 | Biology | 89 | 2014/2015 7 | 13 | English | 29 | 2014/2015 8 | 13 | Agric | 60 | 2014/2015 

Теперь у меня есть запрос, который получает все конкретные результаты студентов, как следует

 SELECT * FROM results where stid='13' AND year='2014/2015' ORDER BY subject ASC LIMIT 20 

и у меня есть следующий результат

 --------------------------------------------------------------------- id | stid | Subject | Total_cumulative | Year | ---------------------------------------------------------------------- 3 | 13 | Maths | 40 | 2014/2015 5 | 13 | Commerce | 40 | 2014/2015 7 | 13 | English | 89 | 2014/2015 8 | 13 | Agric | 60 | 2014/2015 

Но моя цель состоит в том, чтобы получить конкретный уровень учащихся в каждом предмете, и у меня есть дополнительный запрос внутри моего цикла while моего первого заявления sql, как следует

 SELECT rank_number, id, name, total_cumulative FROM ( SELECT id, name, total_cumulative, @rank:=@rank+1 AS rank_number FROM (SELECT pl.id, pl.name,SUM(en.total_cumulative) AS total_cumulative FROM students pl JOIN results en ON pl.id = en.stid WHERE en.subject = '$subject' AND en.year='$year' GROUP BY pl.id ORDER BY total_cumulative DESC ) AS rankings, (SELECT @rank:=0) AS r ) AS overall_rankings WHERE id = '13' LIMIT 0, 1"; 

после этого у меня есть следующий результат

 ---------------------------------------------------------------------------- id | stid | Subject | Total_cumulative | Year | Rank ---------------------------------------------------------------------------- 3 | 13 | Maths | 40 | 2014/2015 | 1 5 | 13 | Commerce | 40 | 2014/2015 | 2 7 | 13 | English | 29 | 2014/2015 | 3 8 | 13 | Agric | 60 | 2014/2015 | 1 

но я хочу, чтобы запрос проверял связи и давал результаты в следующем порядке

 ---------------------------------------------------------------------------- id | stid | Subject | Total_cumulative | Year | Rank ---------------------------------------------------------------------------- 3 | 13 | Maths | 40 | 2014/2015 | 1 5 | 13 | Commerce | 40 | 2014/2015 | 2 7 | 13 | English | 29 | 2014/2015 | 2 8 | 13 | Agric | 60 | 2014/2015 | 1 

Помогите мне, я новичок в программировании mysql