"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Récupérez les dernières nouvelles pour chaque utilisateur de la base de données

Récupérez les dernières nouvelles pour chaque utilisateur de la base de données

Publié le 2025-04-18
Parcourir:328

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 groupe par

Dans ce contexte, vous avez un tableau nommé "Messages" avec les colonnes "id", "from_id", "to_id", "sujet", "message", et "timestamp". Votre objectif est d'extraire le message le plus récent de chaque utilisateur, semblable à l'écran dans une boîte de réception Facebook.

La requête fournie, "SELECT * FROM Messages Group by_id", donne le message le plus ancien pour chaque utilisateur au lieu des derniers. Pour rectifier cela, une approche alternative est requise.

Pour obtenir les messages les plus récents, vous devez déterminer l'horodatage maximal pour chaque utilisateur et rejoindre ces informations avec le tableau "Messages". La requête ci-dessous accomplit ceci:

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 éléments suivants:

  1. calcule le temps de temps le plus récent pour chaque utilisateur de la sous-station "(sélectionnez From_id, max (gimestamp) parmi les messages par les messages par From_id)". Cette sous-requête avec la table "Messages" d'origine à l'aide des colonnes "From_id" et "Timestamp".
  2. Le résultat est un tableau ne contenant que les messages les plus récents pour chaque utilisateur, fournissant les fonctionnalités souhaitées.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3