У меня есть таблица сообщений
messages
--------------
user_id_from (int)
user_id_to (int)
text (varchar)
date (datetime)
isRead (boolean)
Я хочу получить активность сообщений для пользователя, в котором входящие и исходящие находятся в одном списке (так же, как сообщения в Facebook).Я хочу получить последнее сообщение для каждого пользователя, с которым я контактирую.Я пытался сделать это:
Допустим, это мои данные
user_id_from user_id_to text date isRead
100 101 "text1" 2011/1/1 0
101 100 "text2" 2011/1/2 0
100 102 "text3" 2011/1/5 0
Вот мой запрос:
select *
from Message m
where m.user_id_to = 100
or m.id in
(select m2.id
from Message m2
where m2.user_id_from = 100
and m2.user_id_to != m.user_id_from
)
group by m.user_id_from, m.user_id_to
Этот запрос дает мне полные сообщения, где пользователь 100там.
Как я могу это сделать?