Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie unterschiedliche Werte basierend auf einer Spalte mit dem maximalen Datumswert aus der zweiten Spalte aus

Sie müssen eine Unterabfrage erstellen, die die maximale Nachrichten-ID nach sender_id für einen bestimmten Empfänger zurückgibt, und sie mit der Nachrichtentabelle verbinden, um alle anderen Felder zu erhalten:

SELECT m.* 
FROM  `message` AS m
INNER JOIN (SELECT sender_id, MAX(message_date) as md
                FROM message WHERE  `receiver_id` =1 GROUP BY sender_id) AS t
ON m.message_date=t.md and m.sender_id=t.sender_id
WHERE  `receiver_id` =1