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

Consultar a mensagem mais recente em cada conversa com todos os outros usuários


Experimente este simples e fácil, ele também encontrará os usuários de cada grupo Veja meu código:-
select m.* ,u.*
    from
      messages m
      inner join (
            select max(id) as maxid
            from messages
            where messages.fromUser = "$myUsreId"
            OR messages.forUser = "$myUsreId"             
            group By (if(fromUser > forUser,  fromUser, forUser)), 
            (if(fromUser > forUser,  forUser, fromUser))
           ) t1 on m.id=t1.maxid 
      join 
      users u  ON u.id = (CASE WHEN m.fromUser = "$myUsreId"
                             THEN m.forUser
                             ELSE m.fromUser        
                         END)