2016-10-19 73 views
0

我在数据库中的两个表检索非相关记录在SQL

1文件表: 领域:

  • FILE_ID
  • 文件名

2 - 用户表:

  • 我们er_ID
  • 用户名

现在我有3台,这是“文件分配”这使其中的文件被分配给用户的轨道。

领域:

  • FILE_ID
  • USER_ID
  • 日期

我想检索所有非相关的记录即检索未分配给特定文件中的所有用户。

这是我对相关记录的查询。

SELECT * FROM用户I 加入FileRequested上i.UserID = r.UserID [R 其中r.File_ID = 1175

现在我想取回未分配给该文件的所有用户

问题:一个文件可以分配给多个用户。 我曾尝试下面的查询,但没有奏效

SELECT * FROM用户I 加入FileRequested上i.UserID = r.UserID [R 其中r.File_ID!= 1175或r.File_ID为null

回答

1

你可以使用NOT IN使用子查询,如果我理解正确:

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

谢谢你,那就像一个魅力的工作! – Asim

1
SELECT * From Users as a 
Where not exists(select 1 
       from FileAssigned as b 
       Where b.UserID=a.UserID) 
+0

非常感谢。 – Asim