Задать вопрос
@Steely

Как выбрать всех юзеров с последним статусом (две таблицы mysql)?

Есть две таблицы:

Юзеры (id, и т.д.)
Статусы юзеров (userid, status, datetime)

Требуется выбрать всех юзеров с последним статусом по времени. Как это сделать одним запросом?
  • Вопрос задан
  • 2269 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • Shultais Education
    Продвинутый SQL
    1 месяц
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
Пригласить эксперта
Ответы на вопрос 2
@Steely Автор вопроса
Пока придумал вот так, можно другой есть вариант?

SELECT *
FROM users
JOIN status ON status.userid=users.id
WHERE status.datetime = (SELECT MAX(datetime) FROM status WHERE users.id = status.userid)
Ответ написан
@hurgadan
select u.*, a.status, a.last_time
from 
    users u, 
    (select `userid`, `status`, max(`datetime`) as last_time from `status` group by `userid`, `status` ) as a
where a.user_id = u.user_id
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы