SELECT DISTINCT IF( m.`senderid` != 1 , m.`senderid`, m.`receiverid`) AS userid,MAX(m.id) AS msgid,IF( m.`senderid` != 1 , concat_ws(" ", s.username, ""), concat_ws(" ", r.username, "")) AS username,IF(m.`senderid` != 1,s.profileimage,r.profileimage) AS profileimage FROM tbl_messages AS m INNER JOIN tbl_users AS s ON m.`senderid` = s.`id` INNER JOIN tbl_users AS r ON m.`receiverid` = r.`id` WHERE (m.`receiverid` = 1 OR m.`senderid` = 1 ) AND IF(m.receiverId = 1 , m.isArchive = 'y' ,"") GROUP BY IF(m.`senderid` != 1 ,m.`senderid`,m.`receiverid`) ORDER BY msgid DESC