2013-05-24 2 views
1

3 개의 테이블을 함께 결합하려고합니다. 테이블 A, B 및 C ID는 세 테이블 모두 동일합니다.3 개의 테이블 조인 다른 ID 및 동일한 설명

각 테이블에는 필드 설명이 있습니다. 표 A의 설명 이름이있는 ID 1은 표 B의 설명 이름이있는 ID 1이어야합니다. 마찬가지로 표 C의 경우 설명 이름이있는 ID1이어야합니다.

그러나 일부 ID는 ID1 설명 Nameblank를 보여줍니다. B 또는 C와 동일한 값을 갖는 경우 SAME-A를 표시하려고합니다. 3 개가 모두 동일하면 표시하지 않으려합니다.

표 A

ID  Description 

1  Name 

2  Noname 

3  Namea 

표 B

ID  Description 

1  Nameblank 

2  Noname 

3  Nameb 

표 C

ID  Description 

1  Name 

2  Noname 

3  Namec 

결과

ID A Description B Description C Description 

1  | Name | Namea  | Nameblank 

3  |  Nameb| SAME – A  | Namec 
예 :

나는 전에 3 개의 테이블에 가입하지 않았기 때문에 혼란 스럽다. 어떤 도움을 주셔서 감사합니다.

답변

1
SELECT 
    A.ID as 'ID', 
    A.Description as 'A Description', 
    B.Description as 'B Description', 
    C.Description as 'C Description' 
From 
    TableA A 
     INNER JOIN 
    TableB B ON (A.ID = B.ID) 
     INNER JOIN 
    TableC C ON (A.ID = C.ID) 
0
select TABLEA.ID, 
     TABLEA.Description as ADescription, 

     CASE WHEN TABLEA.Description=TABLEB.Description THEN 'SAME - A' 
        ELSE TABLEB.Description 
     END as BDescription, 

     CASE WHEN TABLEA.Description=TABLEC.Description THEN 'SAME - A' 
        ELSE TABLEC.Description 
     END as CDescription 

from TABLEA 
JOIN TABLEB on TABLEA.id=TABLEB.id 
JOIN TABLEC on TABLEC.id=TABLEC.id 

Where TABLEA.Description<>TABLEB.Description 
     or 
     TABLEB.Description<>TABLEC.Description 
ORDER BY TABLEA.id