我有一张这样的桌子。
id conversation_id messageable_id
1 1 3 <--
2 1 5
3 2 7
4 2 3 <--
5 3 7
6 3 9
一个对话有两个成员。
如果发件人为3,我必须像下面那样获得所有对话和接收者。
conversation_id sender_id recevicer_id [sic]
1 3 5
2 3 7
如何建立查询?
谢谢。
答案 0 :(得分:1)
您可以使用lead()
(在MySQL 8.0中可用):
select *
from (
select
conversation_id,
messageable_id sender_id,
lead(messageable_id) over(partition by conversation_id order by id) receiver_id
from mytable
) t
where sender_id = 3