Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Agrupar por usuário e mostrar o mais recente no MYSQL não está funcionando


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.