Conforme mencionado nos comentários para resposta de Robin , essa abordagem não é confiável porque o MySQL não garante que sempre retornará o status mais recente de cada grupo. Em vez disso, você deve juntar sua tabela com uma subconsulta que seleciona o status mais recente (com base em
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
Observe que, se um usuário tiver várias atualizações de status com a mesma
addedDate
, o servidor retornará todos eles (enquanto a consulta de Robin retornaria um indeterminado); se você precisar de controle sobre tal situação, precisará definir como determinar qual atualização de status deve ser selecionada.