더북(TheBook)

8.4.2 카티전 곱

마지막으로 알아볼 조인 방법은 카티전 곱입니다. 카티전 곱(cartesian product)은 조인 조건이 없는 조인을 말합니다. 자연 조인과 비슷해 보이지만, 자연 조인은 조인 조건을 기술하지 않을 뿐이지 내부적으로 같은 이름의 칼럼으로 조인 조건을 생성해 조인을 수행합니다. 하지만 카티전 곱은 조인 조건이 정말 없습니다. 따라서 카티전 곱을 하면 두 테이블에서 가능한 모든 조합의 데이터가 조회됩니다. 가령 A 테이블에 2건, B 테이블에 3건의 데이터가 있을 때 카티전 곱을 하면 6(2 × 3)건의 데이터가 조회됩니다.

카티전 곱으로 조인하려면 내부 조인인 INNER JOIN 구문에서 ON 절을 기술하지 않으면 됩니다. 또는 내부 조인에서 조인 조건을 WHERE 절에 기술하지 않으면 카티전 곱이 수행됩니다.

다음 그림을 보면 코드에 조인 조건이 없으므로 두 테이블에서 가능한 모든 조합으로 데이터가 조회됩니다. 테이블3의 COL1 값이 1일 때 테이블4와 가능한 모든 조합으로 1, 2, 3인 건이 조회됩니다. COL1 값이 2일 때도 마찬가지이며, 결국 6(2 × 3)건의 데이터가 조회됩니다.

▲ 그림 8-7 카티전 곱 실행 방식

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.