繁体   English   中英

加入两个表后如何显示5个最大值?

[英]How to show 5 maximum value after joining two tables?

我有2张桌子:

  • 用户(uid,rollno,名称)

用户表

  • 结果(摆脱,uid,标记)

结果表

所以我想展示最高的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名最高分。

您应该加入子查询最多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 

您需要从结果中获得前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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM