Heim > Datenbank > MySQL-Tutorial > Wie rufe ich die neueste Nachricht von jedem Benutzer in einer Datenbank ab?

Wie rufe ich die neueste Nachricht von jedem Benutzer in einer Datenbank ab?

Linda Hamilton
Freigeben: 2025-01-04 04:51:42
Original
467 Leute haben es durchsucht

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

Abrufen der neuesten Datensätze pro Gruppe mit GROUP BY

In diesem Zusammenhang haben Sie eine Tabelle mit dem Namen „Nachrichten“ mit den Spalten „ id“, „from_id“, „to_id“, „subject“, „message“ und „timestamp“. Ihr Ziel ist es, die neueste Nachricht von jedem Benutzer zu extrahieren, ähnlich der Anzeige in einem Facebook-Posteingang.

Die bereitgestellte Abfrage „SELECT * FROM messages GROUP BY from_id“ liefert stattdessen die älteste Nachricht für jeden Benutzer des Neuesten. Um dies zu beheben, ist ein alternativer Ansatz erforderlich.

Um die neuesten Nachrichten zu erhalten, müssen Sie den maximalen Zeitstempel für jeden Benutzer ermitteln und diese Informationen mit der Tabelle „Nachrichten“ verknüpfen. Die folgende Abfrage erreicht dies:

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;
Nach dem Login kopieren

Diese Abfrage führt Folgendes aus:

  1. Berechnet den aktuellsten Zeitstempel für jeden Benutzer in der Unterabfrage „(SELECT from_id, MAX(timestamp)“ Zeitstempel FROM Nachrichten GROUP BY from_id).
  2. Verknüpft diese Unterabfrage mit der ursprünglichen Tabelle „Nachrichten“ mithilfe Spalten „from_id“ und „timestamp“.

Das Ergebnis ist eine Tabelle, die nur die neuesten Nachrichten für jeden Benutzer enthält und die gewünschte Funktionalität bereitstellt.

Das obige ist der detaillierte Inhalt vonWie rufe ich die neueste Nachricht von jedem Benutzer in einer Datenbank ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage