У меня есть n пользователей в таблице, и для каждого пользователя я сохраняю их время входа и выхода в отдельной таблице. Я хочу получить информацию о пользователях, которые не вошли в систему в течение 2 дней, используя Laravel eloquent.
Структура таблицы пользователей
id | name | email
Структура таблицы журнала
id |action | user_id | created_at | updated_at
Пока я сделал так много:
$users = LogsData::where('action','Login')->where('created_at','<',Carbon::now()->subDays(1))->get();
Но на выходе есть пользователи, которые также вошли в систему в течение 2 дней.
РЕДАКТИРОВАТЬ: я получил запрос, Мне нужно преобразовать это в красноречивое.
Я решил это сам. Вот решение:
SELECT t1.* FROM actions t1
JOIN (SELECT user_id, MAX(id) as maxid FROM actions where action = "LOGIN" GROUP BY user_id) t2
ON t1.user_id = t2.user_id and t1.id = t2.maxid
where created_at < NOW() - INTERVAL 2 DAY