"mysql query, group by and then order by most recent grouped with condition" Code Answer

5

i have added this in the where clause and it seems to be working

where 
'$myid' in ( senderid ) and senderdelete = 0 
or
'$myid' in ( receiverid ) and receiverdelete = 0 

full updated code

 $query_messages = mysqli_query($link,"select 
      prequery.*,
      m2.message,
      m2.senderid,
      m2.receiverid,
      m2.senderdelete,
      m2.receiverdelete
   from
      ( select 
              if( m.senderid < m.receiverid, m.senderid, m.receiverid ) as person1,
              if( m.senderid < m.receiverid, m.receiverid, m.senderid ) as person2,
              max( m.messageid ) as lastmessageidperchat,
              max( m.date ) as lastmessagedate
           from 
              messages m
           where 
                   '$myid' in ( senderid) and senderdelete = 0 or '$myid' in ( receiverid) and receiverdelete = 0 

           group by
              person1, 
              person2
           order by 
              m.date asc
           limit 10 ) prequery

         join messages m2
            on prequery.lastmessageidperchat = m2.messageid    order by 
              date desc");
$row_messages = mysqli_fetch_assoc($query_messages);
$totalrows_messages = mysqli_num_rows($query_messages);
By Tillmann Seidel on July 17 2022

Answers related to “mysql query, group by and then order by most recent grouped with condition”

Only authorized users can answer the Search term. Please sign in first, or register a free account.