Если я правильно понял задачу, то нужно найти последние сообщения для юзера
отдельно для каждого другого, кто посылал ему или получал от него сообщения.
Если нет, т.е. нужно просто получить последнее сообщение для/от юзера, то задачка тривиальная. (см. ApuktaChehov, например)
Если да, то принцип тот же, что и в предыдущей теме, только задачка посложнее.
Классический вариант:
select t.*
from (select max(id) id
from (
select id_otpr userID, id_poluch userID2, max(id) id
from table
where id_otpr = '$Id_настоящего пользователя'
group by id_otpr, id_poluch
union all
select id_poluch userID, id_otpr userID2, max(id) id
from table
where id_poluch = '$Id_настоящего пользователя'
group by id_poluch, id_otpr
) b
group by userID, userID2
) a
left join table t on t.id = a.id
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru