Maison > base de données > tutoriel mysql > Comment récupérer le message le plus récent de chaque groupe d'utilisateurs dans SQL ?

Comment récupérer le message le plus récent de chaque groupe d'utilisateurs dans SQL ?

Patricia Arquette
Libérer: 2025-01-03 07:25:39
original
410 Les gens l'ont consulté

How to Retrieve the Most Recent Message from Each User Group in SQL?

Comment récupérer le dernier message du groupe de chaque utilisateur à l'aide de GROUP BY

Dans votre base de données, vous avez une table nommée "messages" contenant ce qui suit colonnes :

  • id
  • from_id
  • to_id
  • sujet
  • message
  • horodatage

Votre objectif est d'extraire le dernier message de chaque utilisateur groupe. Par exemple, cela ressemble à la liste de messages que vous voyez dans votre boîte de réception Facebook avant de cliquer sur une conversation spécifique.

Au départ, vous avez essayé d'utiliser la requête suivante, qui regroupe les messages selon la colonne from_id :

SELECT * FROM messages GROUP BY from_id
Copier après la connexion

Cependant, vous avez remarqué que cette requête renvoie le message le plus ancien au lieu du dernier.

Pour surmonter cette limitation, vous devez déterminer les dernières valeurs d'horodatage pour chaque groupe de messages à l’aide d’une sous-requête. Ensuite, joignez cette sous-requête à la table principale "messages" pour filtrer uniquement les derniers messages :

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 modifiée identifie efficacement les derniers enregistrements de chaque groupe, vous fournissant les résultats souhaités.

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