Мне нужно получить самую последнюю запись для каждого устройства из таблицы журнала запросов на обновление. Устройство является уникальным в зависимости от комбинации его идентификатора оборудования и MAC-адреса. Я пытался сделать это с GROUP BY
, но я не уверен, что это безопасно, поскольку похоже, что он просто возвращает «верхнюю запись» (независимо от того, что SQLite или MySQL считает, что это так).
Я надеялся, что на эту "верхнюю запись" можно будет намекнуть с помощью ORDER BY
, но это не оказывает никакого влияния, поскольку оба следующих запроса возвращают одинаковые записи для каждого устройства, только в противоположном порядке :
SELECT extHwId,
mac,
created
FROM upgradeRequest
GROUP BY extHwId, mac
ORDER BY created DESC
SELECT extHwId,
mac,
created
FROM upgradeRequest
GROUP BY extHwId, mac
ORDER BY created ASC
Есть ли другой способ сделать это? Я видел несколько похожих постов, в которых были задействованы все субселекты. Если возможно, я бы хотел сделать это без подвыборов, так как я хотел бы научиться делать это без этого.