2016-10-19 4 views
0

비 관련 기록을 검색나는 데이터베이스에 두 개의 테이블이 SQL

1 파일 테이블 : 필드 :

  • FILE_ID
  • 파일 이름

2 사용자 테이블 :

  • er_ID
  • 사용자 이름

는 지금은 파일이있는 사용자에 할당 된의 트랙을 유지한다 "할당 파일이"3 테이블이 있습니다.

분야 :

  • FILE_ID
  • USER_ID
  • 날짜는

나는 특정 파일에 할당되지 않은 모든 사용자를 검색 즉 이외의 모든 관련 기록을 검색 할 수 있습니다.

관련 레코드에 대한 나의 쿼리입니다.

선택 * 사용자에서 나는 FileRequested이 i.UserID = r.UserID 에 r에 가입 곳 r.File_ID = 1175

지금은 그 파일에 할당되지 않은 모든 사용자를 검색 할

문제점 : 하나의 파일을 여러 사용자에게 할당 할 수 있습니다. 나는 쿼리를 다음과 같은 시도했지만 그 r.File_ID가! = 1175 또는 r.File_ID가 null의 경우

이 선택 * 사용자에서 내가 FileRequested이 i.UserID = r.UserID 에 r에 가입 작동하지 않았다

답변

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

관련 문제