DevPing9_ 2020. 8. 27. 19:06

1. CROSS JOIN

 - 일반 집합 연산자의 PRODUCT 개념으로 테이블 간 조인 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 출력한다.

 - 두개의 테이블에 대한 CROSS PRODUCT의 결과는 M*N 건의 데이터 조합이 발생한다.

    ex) (EMP 6건 x DEPT 4건 = 총 24건의 데이터 출력)

 - WHERE 절에서 조인 조건을 추가할 경우 INNER JOIN과 같은 결과를 얻는다. (사용 의미가 없다)

 - 좌측 테이블 기준으로 곱연산을 한다. (좌측 테이블 데이터 기준으로 출력)

 - 보통 튜닝과 리포트 작성, 데이터 웨어하우스의 차원(Dimension)을 fact칼럼과 조인하기전에 모든 차원의 cross product를 먼저 구할때 유용하게 사용된다.

EMP 6건, DEPT 4건의 데이터

SQL> SELECT A.ENAME, B.DNAME
     FROM EMP A CROSS JOIN DEPT B;
     
# 실행결과
ENAME        DNAME 
-------------------
Sun            영업
Sun            유통
Sun            생산
Sun            마케팅
Brian            영업
Brian            유통
Brian            생산
Brian            마케팅
Avrin            영업
Avrin            유통
...
24 개의 행이 선택되었습니다.
     

'''
조인 조건 사용시
'''
     
SQL> SELECT A.ENAME, B.DNAME
     FROM EMP A CROSS JOIN DEPT B
     WHERE B.DEPTNO = A.DEPTNO;
     
SQL> SELECT A.ENAME, B.DNAME
     FROM EMP A INNER JOIN DEPT B
     WHERE B.DEPTNO = A.DEPTNO;
     
# 실행결과는 같음
ENAME               DNAME 
----------------------------
Sun                     영업
Brian                   유통
Avrin                   마케팅
Chris                  생산
John                  유통
Sizzled Guy            영업
...
6 개의 행이 선택되었습니다.
728x90