使用GROUP BY 檢索每組的最新記錄
在此上下文中,您有一個名為「messages」的表,其中包含“列” id」、「from_id」、「to_id」、「主題」、「訊息」和「時間戳記」。您的目標是從每個用戶中提取最新訊息,類似於Facebook 收件匣中的顯示。
提供的查詢「SELECT * FROM messages GROUP BY from_id」會產生每個使用者最舊的訊息最新的。要修正此問題,需要採用替代方法。
要取得最新訊息,您需要確定每個使用者的最大時間戳,並將此信息與「訊息」表連接起來。戳“(SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id)".
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;
以上是如何檢索資料庫中每個使用者的最新消息?的詳細內容。更多資訊請關注PHP中文網其他相關文章!