Récupération des enregistrements les plus récents par groupe avec GROUP BY
Dans ce contexte, vous disposez d'un tableau nommé "messages" avec les colonnes " id", "from_id", "to_id", "sujet", "message" et "horodatage". Votre objectif est d'extraire le message le plus récent de chaque utilisateur, semblable à l'affichage dans une boîte de réception Facebook.
La requête fournie, "SELECT * FROM messages GROUP BY from_id", renvoie le message le plus ancien pour chaque utilisateur. des derniers. Pour remédier à cela, une approche alternative est nécessaire.
Pour obtenir les messages les plus récents, vous devez déterminer l'horodatage maximum pour chaque utilisateur et joindre cette information au tableau "messages". La requête ci-dessous accomplit cela :
SELECT t1.* FROM messages t1 JOIN (SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id) t2 ON t1.from_id = t2.from_id AND t1.timestamp = t2.timestamp;
Cette requête effectue les opérations suivantes :
Le résultat est un tableau contenant uniquement les messages les plus récents pour chaque utilisateur, offrant la fonctionnalité souhaitée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!