Comme mentionné dans les commentaires de Réponse de Robin
, cette approche n'est pas fiable car MySQL ne garantit pas qu'il renverra toujours le statut le plus récent de chaque groupe. Vous devez plutôt joindre votre table avec une sous-requête qui sélectionne le statut le plus récent (basé sur 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
Notez que si un utilisateur a plusieurs mises à jour de statut avec le même addedDate
, le serveur les renverra tous (alors que la requête de Robin en renverrait une indéterminée) ; si vous avez besoin de contrôler une telle situation, vous devrez définir comment déterminer quelle mise à jour de statut doit être sélectionnée.