Поскольку вы сохранили время и дату отдельно, запрос, который вам нужно сделать, относительно уродлив.Мы можем сформировать эффективную метку времени, используя ADDTIME
, чтобы добавить время heuereeval
к дате dateeval
.Тогда это просто базовый запрос объединения:
SELECT t1.*
FROM resultateval t1
INNER JOIN
(
SELECT id, MAX(ADDTIME(dateeval, heureeval)) AS max_date
FROM resultateval
GROUP BY id
) t2
ON t1.id = t2.id AND
ADDTIME(t1.dateeval, t1.heureeval) = t2.max_date;
![enter image description here](https://i.stack.imgur.com/6Y0g7.png)
Демонстрация
Для дальнейшего использования избегайте хранения даты и времени отдельно, если только для этого нет очень веских причин (а я их здесь не вижу).
Редактировать: Как я и опасался, на основании комментариев кажется, что вы сохранили свои даты в виде текста.Вы можете использовать следующий вызов функции для генерации даты на основе текста даты:
STR_TO_DATE(dateeval, '%d-%m-%Y')
Просто замените в моем исходном запросе dateeval
на приведенный выше вызов STR_TO_DATE
, и он все еще должен работать.