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

Как выбрать записи с максимальными элементами SQL?

Есть в базе 2 таблицы - users с полями id и name
и User_log с полями user_id и login_time.

Нужен запрос, который даст выборку с полями user_name, last_login (это login_time последней авторизации пользователя). Если в USER_LOGINS нет информации об авторизациях пользователя, значение должно быть пустым.

Мой вариант выдает одну запись, просто с самым последним login_time, а не у каждого пользователя.
SELECT users.id, MAX(User_log.login_time) AS user_name, last_login FROM users, user_log WHERE users.id = user_log.user_id
Помогите, пожалуйста!

UPD сделал!
Вот верный ответ:
SELECT users.Name AS user_name, user_logins.Login_time AS last_login
FROM users
LEFT OUTER JOIN
user_logins
ON users.ID = user_logins.User_id
WHERE
user_logins.Login_time IN
(SELECT MAX(Login_time) FROM user_logins WHERE users.ID = user_logins.User_id) OR user_logins.Login_time IS NULL;

Помогло это
  • Вопрос задан
  • 3685 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию плюс
    9 месяцев
    Далее
  • Progtips
    Программирование баз данных на SQLite
    2 месяца
    Далее
  • Quality Academy
    Инженер по ручному тестированию. Штучная работа
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
wscms
@wscms
SELECT u.*, max(ul.login_time) as login_time FROM users u
LEFT OUTER JOIN user_log ul ON u.id = ul.user_id
Ответ написан
Ваш ответ на вопрос

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

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