MySQL - 如何获得下一行

时间:2016-08-15 08:55:08

标签: mysql

所以我有一个student_profiles表和排名表,我希望根据学生排名获得下一个排名。例如,我的排名是5,那么下一排名将是排名6.所以这是我的排名结构。

RANKS TABLE: SELECT * FROM RANKS WHERE style_id = 1"

id style_id level name   type   primary_colour secondary_colour
 1        1     1 Newbie double #4e90b2        #3aad04
22        1     2 Normal solid  #fba729        NULL
31        1     3 Expert solid  #4e805b        NULL

这是 STUDENT_PROFILES TABLE

  id   |    student_id  | rank_id
------------------------------------
    1  |        1       |   36  
    2  |        4       |   22  
    3  |        7       |   10  

所以我有一个变量是student_idrank_id& style_id

例如,我有这个值student_id = 4rank_id = 22& style_id = 1

它应该返回

id   style_id   level   name     type    primary_colour   secondary_colour
31 |        1 |     3 | Expert | Solid | #4e805b        | NULL

1 个答案:

答案 0 :(得分:1)

尝试:

SELECT * FROM `ranks` WHERE `level` > (SELECT `level` FROM `ranks` WHERE `id` = rank_id) LIMIT 1

但我认为这不是一个非常有效的解决方案。