id game_id user_id user_playing_status user_turn_status
1 1 2 1 1
2 1 4 1 0
3 1 6 1 0
我们如何访问当前记录的先前记录?
如果表中有三个记录r1,r2,r3 因此,以前的r2记录应该是r1,r3应该是r1,r1应该是r3。
我使用以下查询
select user_id
from current_playing_users
where id < (select id from current_playing_users where user_id = 2)
但是我没有得到第一条记录的先前记录。我想以逆时针方式获得记录。就像图像中以前的user_id 2应该是6
答案 0 :(得分:0)
您可以使用LAG功能
select LAG(user_id) over (order by {your desired order}) as previous_row
from ..
LAG函数以预定顺序返回所需列的前一个单元格。
答案 1 :(得分:0)
是否正在寻找与相关相关的子查询? :
select cu.*.
(select cu1.user_id
from current_playing_users cu1
where cu1.id < cu.id
order by cu1.id desc
limit 1
) as prev_user_id
from current_playing_users cu;