Maison > base de données > tutoriel mysql > Comment récupérer le message le plus récent de chaque utilisateur dans une base de données ?

Comment récupérer le message le plus récent de chaque utilisateur dans une base de données ?

Linda Hamilton
Libérer: 2025-01-04 04:51:42
original
464 Les gens l'ont consulté

How to Retrieve the Most Recent Message from Each User in a Database?

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;
Copier après la connexion

Cette requête effectue les opérations suivantes :

  1. Calcule l'horodatage le plus récent pour chaque utilisateur dans la sous-requête "(SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id)".
  2. Joint cette sous-requête à la table "messages" d'origine en utilisant Colonnes "from_id" et "timestamp".

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal