我正在制作一个类似于 facebook 的聊天系统,您可以在其中同时与 2 或 3 人交谈。我的问题是关于选择对话。
inbox_conversation(此表用于在用户第一次开始交谈时创建新的会话 ID)
id_conversation | occured_at
1 13482942
2 18583953
inbox_join(用于用户加入会话的表,在这种情况下,用户 1、2、3 在 ID 为 1 的讨论中)
id_conversation | id_user
1 1
1 2
1 3
2 4
2 5
inbox_msg(用于记录已发送消息的表)
id_conversation | id_user | message | occured_at
1 1 Hey 1457694
1 2 Hola 3848374
1 3 Cool 3294933
2 4 Wow 4392934
2 5 Yes 9485737
现在我必须做一些查询来选择只有对话的 id_user 的消息,在这种情况下我有 1、2、3。有人可以帮我建立这个查询。
我正在寻找选择与 id_user 1,2,3 讨论的最终结果
id_user | message | occured_at
1 Hey 1457694
2 Hola 3848374
3 Cool 3294933
PS:如果对话有 3 个用户并且我尝试只选择其中 2 个,我将无法看到对话。
如果在这种情况下我只有用户 1,2 的 id,则没有与该 2 用户的讨论,但如果用户 1 写入数据库中的用户 2 将是另一个 id 讨论,并将与两个用户相关。像这样,如果我添加另一个用户示例用户 3,他将看不到用户 1 和 2 之间发送的先前消息
如果仅使用 id 用户选择是一个坏主意,我可以研究一些解决方案来传递讨论的 id。