2009-09-08 8 views
0

나는이 쿼리를 위해 가능한 한 실제 데이터를 얻을 것이다. 힘든 시간을 보내고있다.SQL 2 개의 테이블을 링크 테이블과 비교하기

표 HierarchySet :

HierarchySetId ClientId 
22    1866 
23    1866 

표 사용자 :

UserId UserName ClientId 
76  TestUser 1866 

표 LinkTable : 이제

LinkId UserId OrganisationId HierarchySetId 
20241  76  1822    23 
20242  76  1877    23 

은 "LinkTable"에 참고 "OrganisationId"필드이다 그들이 이러한 테이블과 관련이없는 참조 일 뿐이며, 사용자가이 테이블에서 여러 행을 가질 수있는 방법의 예일뿐입니다. 동일한 UserId 및 HierarchySetId가있는 테이블

여기서 내가하려고하는 것은 HierarchySetId와 ClientId를 지정하는 것입니다. - HiocketySetId - I에 대한 Linktable에 행이없는 ClientId의 모든 사용자를 찾아야합니다. 절대 멈추었 어! - SQL Server 2008을 사용 중입니다.

감사합니다.

편집 : 아래의 감사 Preet는 최종 쿼리는 다음과 같이 나온 :이 하나가 완벽하게 작동

SELECT * 
FROM User u 
INNER JOIN HierarchySet h ON h.ClientId = u.ClientId 
LEFT OUTER JOIN LinkTable l ON 
    l.HierarchySetId = h.HierarchySetId 
    AND u.UserId = l.UserId 
WHERE l.HierarchySetId IS NULL and l.UserId IS NULL 
AND u.ClientId = xxxxxx 
AND h.HierarchySetId = xxxxxx 

답변

1
select * 
from user u 
inner join hierarchyset h on h.clientid = u.clientid 
left outer join linktable l on 
    l.hierarchsetid = h.hierarchsetid 
and u.userId = l.userId) 
where l.hierarchsetid is null and l.userId isnull 
+0

는, 정말 감사합니다. – ShaunO

+1

(fx. 휘파람을 불고 외모로 보임 - 완전한 추측이었습니다!) –

관련 문제