2012-09-04 3 views
1

을 충족하지 않는 행 나는 두 개의 연결된 테이블을 표시하는 방법 : 아래 기준을

Case_Table:     Case_Clients 
           Client_ID (int, identity) 
    Case_ID (int, identity) --- Case_ID (int) 
    Conference_ID (int)   Relationship_ID (int) 
    Other Stuff 

는 가정의 머리가 모든 레코드를 나열하는 SQL 문입니다 :

SELECT Case_Table.Case_ID, 
      Case_Table.Conference_ID, 
      Case_Clients.Client_ID, 
      Case_Clients.Relationship_ID 
    FROM Case_Clients INNER JOIN 
      Case_Table ON Case_Clients.Case_ID = Case_Table.Case_ID 
    WHERE (Case_Clients.Relationship_ID = 1) 

회사는 각 사례에 세대주가 있어야하며이를 시행하기위한 조치를 취했지만 여전히 세대주가없는 기존 사례가 있습니다. 나는 Head of Household (Relationship_ID = 1)이없는 100 가지 이상의 사건이 있음을 안다.

이동 ... 내가하려는 것은 Case_Clients에서 세대주가없는 Case_Table의 각 레코드에 대한 Conference_ID 및 Case_ID를 나열하는 것입니다.

답변

1

당신은 Case_ClientsRelationshipID = 1에 기록이없는 CaseTable의 모든 레코드를 검색 할 NOT IN을 사용할 수 있습니다 (즉, 가정은 머리의-가계 기록이다).

SELECT Case_Table.Case_ID, Case_Table.ConferenceID 
FROM Case_Table 
WHERE CaseTable.Case_ID NOT IN (
    SELECT Case_ID 
    FROM Case_Clients 
    WHERE RelationshipID = 1 
) 
+0

이것은 트릭을했다고 생각합니다. 그리고 그것을보고 솔루션이 너무 단순하다는 것을 알게되면 다소 당황 스럽습니다. 빠른 해결책을 가져 주셔서 감사합니다. –

관련 문제