如何从内连接SQL获取下一个值

时间:2016-02-16 09:33:20

标签: mysql

这个问题仍在继续here,因为他们不想在不打开新内容的情况下回答。

这是我的表格:

customer_profiles

enter image description here

friend_levels

enter image description here

所以我有一个查询可以获得他的等级,所以当他得到points = 168然后他会得到Great Friend所以这就是我已经拥有的SQL

SELECT s.*
FROM customer_profiles t
INNER JOIN friend_levels s ON(t.friend_points >= s.points_needed)
WHERE s.points_needed = (SELECT max(f.points_needed)
                        FROM friend_levels f
                        WHERE t.friend_points >= f.points_needed)
AND t.user_id = $user_id

并且结果如此

enter image description here

所以我的问题是如何获得它的下一个值才能像这样使用它?对于前者如果我处于Great Friend级别,那么我必须获得Best Friend级别。

enter image description here

1 个答案:

答案 0 :(得分:1)

这应该很简单:

SELECT (SELECT min(fl.points_needed) 
          FROM friend_levels fl
         WHERE fl.points_needed > cp.friend_points) - cp.friend_points AS points_needed_for_next_level
  FROM customer_profiles cp
 WHERE cp.user_id = $user_id;