select b.user_id,u.name,b.grade_num
from
(select user_id,sum(if(type='add',grade_num,-1*grade_num)) grade_num
from grade_info
group by user_id) b
left join
user u
on b.user_id=u.id
where b.grade_num in (
select max(distinct a.grade_num)
from
(select user_id, sum(if(type='add',grade_num,-1*grade_num)) grade_num
from grade_info
group by user_id) a
)
order by b.user_id
- 利用sum和if函数求得用户的当前得分
- 求最大值
- 连接user表

京公网安备 11010502036488号