首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查组聊天应用程序中指定参与者的会话是否已经存在

检查组聊天应用程序中指定参与者的会话是否已经存在
EN

Stack Overflow用户
提问于 2020-11-18 19:34:53
回答 1查看 206关注 0票数 1

我正在写聊天应用程序,支持小组聊天。创建组聊天时,请指定收件人并单击“创建”,这将为收件人创建组聊天。当用户选择已存在于现有组聊天中的所有收件人的收件人时,我希望重定向到它,而不是创建新的收件人,这意味着每个组聊天都有唯一的参与者。我不知道如何确认这种对话是否已经存在。

chat_participants表:

代码语言:javascript
运行
复制
id | user_id | group_chat_id
1  | alice   | 1
2  | bob     | 1
3  | alice   | 2 // chat just with alice
4  | bob     | 3 // chat just with bob

当用户试图为用户id "alice“创建新的聊天组时,"bob”我希望获得与这些参与者的现有组聊天的id,其中必须包括所有这些参与者,而在我们的例子中,没有其他人与id 1进行组聊天。

如何编写这样的sql查询?我使用postgresql,但是任何sql方言都可以。查询应该支持任意数量的用户ids。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-18 21:17:54

您可以使用以下方法进行检查:

代码语言:javascript
运行
复制
select cp.group_chat_id
from chat_participants cp
group by cp.group_chat_id
having array_agg(user_id order by user_id) = @array_of_your_users;

可以将参数数组传递给having子句。在两个数组中,应该以相同的方式对user_id进行排序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64900129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档