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

groupe mySQL par nom de membre

Je pense que c'est ce que vous recherchez.

SELECT messages.* 
  FROM 
  (SELECT MAX(lastseen) AS lastseen,IF ('Tom' = `from`,`to`,`from`) as otheruser FROM messages
    WHERE 'Tom' IN (`from`,`to`) GROUP BY otheruser
   )
AS latest INNER JOIN messages ON latest.lastseen = messages.lastseen
                             AND (('Tom' = messages.from AND latest.otheruser = messages.to)
                                 OR
                                 ('Tom' = messages.to AND latest.otheruser = messages.from))
ORDER BY messages.lastseen
DESC,`read`='no' limit 10

remplacez simplement 'Tom' par votre variable

Cela renverra les 10 derniers utilisateurs qui ont envoyé un message à 'Tom' ou à 'Tom'.