SQLD/SQL 기본과 활용
CROSS JOIN
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를 먼저 구할때 유용하게 사용된다.


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