Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez des valeurs distinctes basées sur une colonne avec la valeur de date maximale de la deuxième colonne

Vous devez créer une sous-requête qui renvoie l'ID de message maximum par sender_id pour un destinataire donné et la joindre à la table des messages pour obtenir tous les autres champs :

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