2016-10-19 106 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