sql >> Base de Datos >  >> RDS >> Mysql

Seleccione valores distintos en función de una columna con el valor de fecha máximo de la segunda columna

Debe crear una subconsulta que devuelva la identificación de mensaje máxima por sender_id para un receptor determinado y unirla a la tabla de mensajes para obtener todos los demás 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