Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione valores distintos com base em uma coluna com valor máximo de data da segunda coluna


Você precisa criar uma subconsulta que retorne o ID máximo da mensagem por sender_id para um determinado destinatário e juntá-lo à tabela de mensagens para obter todos os outros campos:
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