Я пытаюсь найти последние записи журнала в моей базе данных MySQL. Я приготовил этот запрос поздно вечером, но сегодня, после тестирования, похоже, что он не возвращает правильные данные.Почему mysql-запрос возвращает неправильные результаты?
SELECT MAX(id), hostName, email, info, time
FROM log
WHERE time >= DATE_SUB(NOW(), INTERVAL 1 HOUR)
GROUP BY hostName
ORDER BY `time` DESC
Запрос выполняется просто отлично, но ни одно из других полей, похоже, не соответствует столбцу id. Он захватывает максимальный номер id, но имя узла, адрес электронной почты и информация не соответствуют идентификатору, и они не являются последними. Я потратил несколько часов на то, чтобы крутить мои колеса на этом (я MySQL noob и просто делаю это для удовольствия), поэтому я довольно запутался сейчас.
Спасибо за помощь!
EDIT: Wow благодарит за все ответы! Извините за путаницу, я должен был сказать: «Мне нужен последний журнал для имени хоста!» < - Это именно то, что мне нужно.
Зачем вам нужен MAX()? Является ли упорядочение по времени недостаточным для получения последних записей журнала? –
Хм .. просто удалил его, и я получаю данные, которые почти 30 минут. – David
Можете ли вы объяснить результат, который хотите? «Только последняя запись каждого хоста и идентификатора»? – Akarun