【发布时间】:2020-02-22 22:59:11
【问题描述】:
我正在为应用程序开发消息功能,并且我在 MSSQL 中有以下表,以及一个用户表(未列出):
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 表是否存在只包含给定用户ID 集的线程,假设用户1,3,5,7。每个Thread 都包含一组唯一的用户ID。我如何查询这些数据?如果它更简单,我可以将一些逻辑放在服务器(node.js)中。我在网上查找了重复的问题,但找不到任何问题,但我不确定如何准确地表达问题以找到它们(如果它们在附近)。
【问题讨论】: