외래키 여러 테이블 참조 질문 드립니다. 0 1 1,640

by JS [SQL Query] [2019.07.09 16:58:35]


쿼리 문의를 드리겠습니다.

T1 테이블의 2, 3번째 컬럼이 T2, T3 테이블로 외래키 걸려 있습니다.

T1 테이블의 레코드 수와 동일한 레코드 수의 결과를 도출하고 싶습니다.

T1 테이블의 2번째 컬럼이 null 이면 null 로 출력하고 값이 있으면 T2 테이블의 해당 외래키 조건의 다른컬럼 값을 가져오고 싶습니다.

T1 테이블의 3번째 컬럼이 null 이면 null 로 출력하고 값이 있으면 T3 테이블의 해당 외래키 조건의 다른컬럼 값을 가져오고 싶습니다.

 

 

T1테이블          
A1 T2_B1 T3_C1 A4    
A001 B001 (null) D001    
A002 (null) C001 D002    
A003 (null) (null) D003    
           
T2          
B1 B2 B3      
B001 B0001 B00001      
           
           
           
T3          
C1 C2 C3      
C001 C0001 C00001      
           
           
           
결과          
T1.A1 T2.B2 T2.B3 T3.C2 T3.C3 T1.A4
A001 B0001 B00001 (null) (null) D001
A002 (null) (null) C0001 C00001 D002
A003 (null) (null) (null) (null) D003
by 마농 [2019.07.10 08:08:21]
WITH t1 AS
(
SELECT 'A001' a1, 'B001' t2_b1,  null t3_c1, 'D001' a4 FROM dual
UNION ALL SELECT 'A002',  null , 'C001', 'D002' FROM dual
UNION ALL SELECT 'A003',  null ,  null , 'D003' FROM dual
)
, t2 AS
(
SELECT 'B001' b1, 'B0001' b2, 'B00001' b3 FROM dual
)
, t3 AS
(
SELECT 'C001' c1, 'C0001' c2, 'C00001' c3 FROM dual
)
SELECT a.a1
     , b.b2
     , b.b3
     , c.c2
     , c.c3
     , a.a4
  FROM t1 a
  LEFT OUTER JOIN t2 b
    ON a.t2_b1 = b.b1
  LEFT OUTER JOIN t3 c
    ON a.t3_c1 = c.c1
 ORDER BY a1
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입