SELECT * FROM (SELECT m.id, m.s_id, m.r_id, i.id as i_id, i.u_id, i.m_id, i.adddate, i.message FROM messages as m, messages_items as i, users as u WHERE (m.s_id=$users->id or m.r_id=$users->id) and i.m_id=m.id and u.id=i.u_id ORDER BY i.id DESC) as tmp GROUP BY m_id ORDER BY i_id DESC


Ben bu tarz bir kod kullanıyorum.
Verileri 2 kere süzgeçten geçirmiş oluyorsun.