【发布时间】:2020-11-19 05:17:54
【问题描述】:
我正在编写支持群聊的聊天应用程序。创建群聊时,您指定收件人,然后单击“创建”,为收件人创建群聊。 当用户选择一些现有群聊中已经存在所有收件人的收件人时,我想重定向到它而不是创建新的,这意味着每个群聊都有唯一的参与者。我不知道如何检查这样的对话是否已经存在。
chat_participants 表:
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 方言都可以。查询应该支持任意数量的用户 ID。
【问题讨论】:
标签: sql postgresql