現在どのユーザーがどのチャットルームにいるかを記録する Postgres テーブルがあります。
「chatRoomId」と「userId」の 2 つの列があります。
したがって、次のようなレコードがあると仮定します。
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」で正常に応答できます。しかし、ご覧のとおり、このクエリはハードコードされているため、可変長のユーザー ID の入力配列に対して機能する、より優れた SQL が必要です。
何か案は?