Como se menciona en los comentarios a Respuesta de Robin
, ese enfoque no es confiable porque MySQL no garantiza que siempre devolverá el estado más reciente de cada grupo. En su lugar, debe unirse a su tabla con una subconsulta que seleccione el estado más reciente (basado en addedDate
).
SELECT *
FROM status
NATURAL JOIN (
SELECT userID, MAX(addedDate) as addedDate
FROM status
GROUP BY userID
) AS mostRecent
ORDER BY addedDate DESC
LIMIT 10
Tenga en cuenta que si un usuario tiene varias actualizaciones de estado con el mismo addedDate
, el servidor los devolverá todos (mientras que la consulta de Robin devolvería uno indeterminado); si necesita controlar dicha situación, deberá definir cómo se determina qué actualización de estado debe seleccionarse.