@vanillathunder

Как получить все кроме первых записей с повторяющемся пользователями?

Есть таблица вида uuid, user_id, update_at(timestamp)
Нужно получить все записи в которых повторяется user_id и в которой update_at < MAX(update_at) с текущим user_id

Пока придумал как получить записи с повторениями, но как отфильтровать по update_at еще не придумал
SELECT * FROM table WHERE user_id IN (SELECT user_id from table group by user_id having count(*) > 1)
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT DISTINCT `t1`.*
  FROM `table` AS `t1`
  JOIN `table` AS `t2`
    ON `t2`.`user_id` = `t1`.`user_id`
      AND `t2`.`update_at` > `t1`.`update_at`
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Akela_wolf
Extreme Programmer
Допишите в WHERE: AND update_at >= :date
А собственно значение параметра проще всего вытащить отдельным запросом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы