Как показать 5 максимальных значений после объединения двух таблиц? - PullRequest
0 голосов
/ 04 июня 2019

У меня есть 2 таблицы:

  • пользователей (uid, rollno, name)

users table

  • Результаты (RID, UID, отметки)

results table

Итак, я хочу показать обладатель высших 5 марок с их номером крена и отметками вроде -

MCA-03/17   16
MCA-01/17   15
MCA-04/17   8
MCA-02/18   6
MCA-06/17   5

Я пробовал:

SELECT u.rollno, r.marks 
FROM users u 
JOIN results r ON r.uid = u.uid 
ORDER BY marks DESC 
LIMIT 5

но он не показывает 5 самых высоких оценок.

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Вам нужно получить 5 лучших оценок по результатам и присоединиться к пользователям:

SELECT u.rollno, r.marks
FROM users u INNER JOIN (
  SELECT uid, marks 
  FROM results  
  ORDER BY marks DESC 
  LIMIT 5
) r ON r.uid = u.uid
ORDER BY marks DESC
0 голосов
/ 04 июня 2019

Вы должны присоединиться к подзапросу максимум 5

select  u.rollno, r.marks 
FROM users u 
INNER JOIN result r on r.uid = u.uid 
INNER JOIN  (
SELECT  r.marks 
ORDER BY marks DESC 
LIMIT 5
) t on t.marks = r.marks 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...