答案 0 :(得分:1)
我不确定您是如何定义“最新”的-updated_at
? created_at
?或id
?
无论如何,一种方法是相关子查询:
select m.*
from messages m
where 1 in (m.receiver_id, m.sender_id) and
m.updated_at = (select max(m2.updated_at)
from messages m2
where (m2.receiver_id, m2.sender_id) in ((m.receiver_id, m.sender_id), (m.sender_id, m.receiver_id))
);