금융에 대한 모든 것

JOIN문 

 JOIN문은 이상의 테이블을 조회한 결과를 결합하여 하나의 결과를 얻고 싶을 사용하는 구문입니다. JOIN에는  ANSI SQL 문법을 이용한 ANSI 조인 방법이 있는데 이것을 이용하면 Oracle, mysql, mariaDB에서 모두 같은 문장으로 조인이 가능합니다.

 

외부 조인 (LEFT JOIN)

 LEFT JOIN은 테이블 A 기준으로 조인을 하는 방법입니다.

 

기본 사용법

  SELECT A.컬럼1
         ,...
         ,B.컬럼1
         ,...
     FROM 테이블1 A 
LEFT JOIN 테이블2 B
       ON A.컬럼1 = B.컬럼1;

 FROM절에는 기준이 되는 테이블을 입력하고 LEFT JOIN절에는 조인되는 테이블을 입력합니다. 그리고 ON절에는 일치 조건을 입력하여 테이블 A 테이블 B 칼럼 값이 일치하는 행만을 조회하도록 합니다.

 

예시

  SELECT A.USER_ID
         ,B.QUEST_TITLE
     FROM 테이블1 T_USER A
LEFT JOIN 테이블2 T_QUEST B
       ON A.USER_ID = B.USER_ID;

조회 결과로 USER_ID, QUEST_TITLE 칼럼 중에서 T_USER의 USER_ID 값이 T_QUEST의 USER_ID 값과 일치하는 행이 조회가 됩니다.

 

외부 조인(RIGHT JOIN)

 RIGHT JOIN은 오른쪽에 있는 테이블을 기준으로 조인하는 방법입니다. LEFT JOIN과는 조회 결과가 같지만 조회 순서가 다릅니다.

 

기본 사용법

  SELECT A.컬럼1
         ,...
         ,B.컬럼1
         ,...
     FROM 테이블1 A
RIGHT JOIN 테이블2 B
       ON A.컬럼1 = B.컬럼1;

사용 방법은 LEFT JOIN 같고 RIGHT JOIN으로만 바꾸어 주면 됩니다.

 

예시

  SELECT A.USER_ID
         ,B.QUEST_TITLE
     FROM 테이블1 T_QUEST B
RIGHT JOIN 테이블2 T_USER A
       ON A.USER_ID = B.USER_ID;

 RIGHT JOIN에서는 T_USER  T_QUEST 입력 순서를 바꾸면 LEFT JOIN 같은 결과가 조회됩니다.

 

내부 조인(INNER JOIN)

  두 테이블에서 조건을 만족하는 행만 조회가 됩니다. 외부 조인인 LEFT, RIGHT JOIN 같지만 차이점은 WHERE 절을 사용할 있다는 점입니다.

 

기본 사용법

  SELECT A.컬럼1
         ,...
         ,B.컬럼1
         ,...
      FROM 테이블1 A 
INNER JOIN 테이블2 B
        ON A.컬럼1 = B.컬럼1;
    [WHERE 조건]

내부 조인을 사용하여 WHERE 조건을 붙이면 조인 결과에서 다시 조건을 만족하는 행만 조회할  있습니다.

 

CROSS JOIN

테이블 A에서 조회되는 하나의 행에 테이블 B에서 조회되는 모든 행을 연결하여 조인하는 방법입니다.

 

기본 사용법

  SELECT A.칼럼1
         ,...
         ,B.칼럼1
         ,...
     FROM 테이블1 A 
CROSS JOIN 테이블2 B

만약 테이블 A 칼럼1에서 8, 테이블 B 칼럼1에서 6개의 행이 조회가 된다면 조인 결과의 칼럼 수는 1 + 1 = 2개가 되고 행은 8 x 6 = 48개가 됩니다.

 


 

 

반응형