Сделать выборку времени последнего логина в системе всех пользователей - 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
Листинг программы
  1. SELECT u.name, t.login_time FROM
  2. (
  3.   SELECT MAX(login_time) AS login_time, user_id
  4.   FROM login_time
  5.   GROUP BY user_id
  6. ) AS t
  7. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы