본문 바로가기

삽질기행/윈도우서

[MSSQL] Join

 

JOIN : 정규화를 거쳐 여러 테이블에 나누어진 데이터를 연관지어 가져올때 사용

 

1.INNER JOIN

 > 조인하는 테이블의 ON절이 일치하는 결과값만을 출력

SELECT * FROM

[TABLENAME] T0 INNER JOIN [JOINTABLE] T1 ON T0.CODE = T1.CODE

     // [TABLENAME]과 [JOINTABLE]의 코드값이 일치하는 항목만 출력

 

 

2.OUTER JOIN

 > 조인하는 테이블의 ON절 조건중 기준이 되는 한쪽의 데이터를 모두 출력

 > 기준 테이블에는 존재하나 조인테이블에 값이 존재하지 않으면 NULL 값 반환

 > LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN 형식이 있으며,

    기준 테이블에 따라 LEFT, RIGHT 구분, FULL OUTER JOIN의 경우 성능상

    잘 사용하지 않음.

SELECT * FROM

[TABLENAME] T0 LEFT OUTER JOIN [JOINTABLE] T1 ON T0.CODE = T1.CODE

// [TABLENAME]의 내역중 코드값이 일치하는 [JOINTABLE]의 값 출력,

   [TABLENAME] 테이블에만 있는 코드값의 경우 NULL값 반환

 

 

3. LEFT OUTER JOIN 의 WHERE절과 ON~AND절

    > SELECT * FROM

[TABLENAME] T0 LEFT OUTER JOIN [JOINTABLE] T1 ON T0.CODE = T1.CODE

WHERE T1.TYPE = '10'

//  JOIN하여 [JOINTABLE] 의 TYPE값이 10인것만 출력

 

    > SELECT * FROM

[TABLENAME] T0 LEFT OUTER JOIN [JOINTABLE] T1 ON T0.CODE = T1.CODE

AND T1.TYPE = '10'

//  JOIN 내역중 TYPE의 결과값에 10 입력