Sql server 在SQL中检索不相关的记录

Sql server 在SQL中检索不相关的记录,sql-server,database,Sql Server,Database,我在数据库中有两个表 1-文件表: 字段: 文件标识 文件名 2-用户表: 用户ID 用户名 现在我有了第三个表,它是“分配的文件”,它记录了分配给哪些用户的文件 字段: 文件标识 用户ID 日期 我想检索所有不相关的记录,即检索未分配给特定文件的所有用户 这是我对相关记录的查询 从用户i中选择* 加入请求的文件管理器 在i.UserID=r.UserID上 其中r.File_ID=1175 现在我想检索所有未分配到该文件的用户 问题:一个文件可以分配给多个用户。 我尝试了以下查询,

我在数据库中有两个表

1-文件表: 字段:

  • 文件标识
  • 文件名
2-用户表:

  • 用户ID
  • 用户名
现在我有了第三个表,它是“分配的文件”,它记录了分配给哪些用户的文件

字段:

  • 文件标识
  • 用户ID
  • 日期
我想检索所有不相关的记录,即检索未分配给特定文件的所有用户

这是我对相关记录的查询

从用户i中选择* 加入请求的文件管理器 在i.UserID=r.UserID上 其中r.File_ID=1175

现在我想检索所有未分配到该文件的用户

问题:一个文件可以分配给多个用户。 我尝试了以下查询,但不起作用

从用户i中选择* 加入请求的文件管理器 在i.UserID=r.UserID上
其中r.File_ID!=1175或r.File_ID为空

如果我理解正确,您可以在子查询中使用
NOT IN

SELECT *
FROM User i
WHERE i.UserID NOT IN (SELECT UserID 
                       FROM FileAssigned 
                       WHERE File_ID = 1175)

如果我理解正确,您可以在子查询中使用
NOT IN

SELECT *
FROM User i
WHERE i.UserID NOT IN (SELECT UserID 
                       FROM FileAssigned 
                       WHERE File_ID = 1175)