我有一个 Postgres 表,它记录了哪些用户现在在哪个聊天室中。
它有两列 - “chatRoomId”和“userId”。
所以假设我有这样的记录:
chatRoomX, A
chatRoomX, B
chatRoomY, B
chatRoomY, C
chatRoomY, D
(这意味着 chatRoomX 中的用户 A、B。chatRoomY 中的用户 B、C、D)
现在,给定一个 ["A","B"] 数组,我需要一个 SQL 查询来确定他们现在所在的聊天室——查询应该以“chatRoomX”响应。
到目前为止,这就是我所得到的:
client.query('SELECT chatRoomId FROM tableName WHERE
userId = $1 INTERSECT SELECT chatRoomId FROM tableName WHERE
userId = $2', ["A","B"], function(err, results, done) { ... }
这个查询可以成功地用“chatRoomX”回复我。但是正如您所看到的,这个查询是硬编码的,因此我需要一个更好的 SQL,它应该适用于具有可变长度的用户 id 的输入数组。
有任何想法吗?