Die angegebene Abfrage, "aus Message Group by From_id", gibt die älteste Nachricht für jeden Benutzer anstelle der neuesten. Um dies zu korrigieren, 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" verbinden. Die folgende Abfrage führt dies aus:
T1.* Aus Nachrichten T1 Join (aus auswählen von_id, max (Zeitstempel) Zeitstempel aus der Nachrichtengruppe von von _id) T2 Auf t1.from_id = t2.from_id und t1.timestamp = t2.timestamp;
Diese Abfrage führt die folgenden Aussagen aus:
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;berechnet den neuesten Zeitstempel für jeden Benutzer in der Subquery "(SELECT AUSGEBNISSE) (Timestamp). Diese Unterabfrage mit der originalen "Nachrichten" -Tabelle mit "aus" von "aus" und "Zeitstempel" Spalten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3