Предыдущие записи в MySQL - PullRequest
0 голосов
/ 23 января 2019
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

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Ищете ли вы для коррелированный подзапрос? :

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;
0 голосов
/ 23 января 2019

вы можете использовать функцию LAG

select LAG(user_id) over (order by {your desired order}) as previous_row
from ..

Функция LAG возвращает прежнюю ячейку в нужном столбце с заранее заданным порядком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...