Я работаю над функцией обмена сообщениями для приложения, и у меня есть следующие таблицы в MS SQL вместе с таблицей пользователя (не указана):
CREATE TABLE Thread (
id int IDENTITY(1,1),
createdAt datetimeoffset NOT NULL,
CONSTRAINT PK_Thread_id PRIMARY KEY (id)
) GO
CREATE TABLE ThreadParticipant (
userId int NOT NULL,
threadId int NOT NULL,
createdAt datetimeoffset NOT NULL,
CONSTRAINT PK_userId_threadId PRIMARY KEY (userId, threadId),
CONSTRAINT FK_ThreadParticipant_userId FOREIGN KEY (userId) REFERENCES User(id) ON DELETE CASCADE,
CONSTRAINT FK_ThreadParticipant_threadId FOREIGN KEY (threadId) REFERENCES Thread(id) ON DELETE CASCADE
) GO
Я хочу запросить в таблице ThreadParticipant
, существует ли поток, содержащий только данный набор идентификаторов пользователей, скажем, пользователи 1,3,5,7
. Каждый Thread
содержит уникальный набор идентификаторов пользователей. Как я могу запросить эти данные? Если проще, я могу поместить некоторые логики c на сервер (node.js). Я искал дубликаты вопросов в Интернете и не могу их найти, хотя точно не знаю, как сформулировать вопрос, чтобы найти их, если они рядом.