Сделать выборку времени последнего логина в системе всех пользователей - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый день! В sql не силен, возник вопрос. Есть 2 таблицы: USERS +-+--------+ | id | name | +--+--------+ | 0 | Azat | | 1 | Anton | | 2 | Ivan | | 3 | Marat | +--+--------+ LOGIN_TIME +---+----------+-------------+ | id | user_id |login_time | +---+----------+--------------+ | 0 | 0 | 15.01.2017 | | 1 | 0 | 01.01.2017 | | 2 | 2 | 12.01.2017 | | 3 | 0 | 15.11.2016 | | 4 | 2 | 23.08.2016 | +--+---------+-------------+ id в обеих таблицах является первичным ключом, USERS.id и LOGIN_TIME.user_id связаны друг с другом нужно выбрать имена и их самое последнее время захода в систему

Решение задачи: «Сделать выборку времени последнего логина в системе всех пользователей»

textual
Листинг программы
SELECT u.name, t.login_time FROM
(
  SELECT MAX(login_time) AS login_time, user_id
  FROM login_time
  GROUP BY user_id
) AS t
INNER JOIN users u ON t.user_id = u.id

Объяснение кода листинга программы

В данном коде выполняется запрос к базе данных с целью получить имя пользователя и время его последнего входа в систему.

  1. Создается подзапрос (query), который выбирает максимальное время входа в систему для каждого пользователя (GROUP BY user_id). Это делается для того, чтобы избежать повторений в итоговой выборке.
  2. Результаты подзапроса сохраняются в временную таблицу с именем t.
  3. Затем происходит объединение (INNER JOIN) временной таблицы t с таблицей users по полю id, чтобы получить имена пользователей.
  4. В итоговой выборке выводятся поля name и login_time.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы