Получтиь в запросе данные из другой таблицы с максимлаьной датой?

Допустим есть запрос
SELETEC * FROM `users` WHERE `id` = 1

Так же есть таблица Actions, где есть поля id, user, action, date

Как получить в запросе SELETEC * FROM `users` WHERE `id` = 1, еще получить последнюю самое свежее из таблицы Actions, к данному пользователю, при этом не у всех пользователей есть записи в таблице Actions
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега MySQL
Просто получить дату последнего события:

SELECT  
    `users`.*,
        (SELECT 
            `actions`.`date` 
        FROM 
            `actions` 
        WHERE 
            `actions`.`user`=`users`.`id` 
        ORDER BY 
            `date` DESC 
        LIMIT 1) AS 
    'last_action_date'
FROM 
    `users` 
WHERE 
    `id` = 1


Получить всё событие целиком:
SELECT  
    `users`.*,
        (SELECT 
            JSON_OBJECT(
                'date', `actions`.`date`,
                'action', `actions`.`action`
            )
        FROM 
            `actions` 
        WHERE 
            `actions`.`user`=`users`.`id` 
        ORDER BY 
            `date` DESC 
        LIMIT 1) AS 
    'last_action'
FROM 
    `users` 
WHERE 
    `id` = 1
Ответ написан
Ваш ответ на вопрос

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

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