Skip Headers

오라클 / PROC SQL / DATA STEP

이블 결합
프 로 그 램 비 교

Go to Documentation Home
HOME
Go to Book List
PRO_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
TABLE JOIN
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

6. 교차조인(CROSS JOIN) 


교차 조인 (Cross Join) 은 말 그대로 두 개의 테이블을 그냥 붙였다는 개념이다. 아무런 조건이나 제한 사항 없이 양쪽은 있는 그대로 연결만 했다는 개념으로 생각을 하면 되겠다.
합집합(Union) 이라는 개념으로 생각해도 큰 무리가 없다.

* Cartesian product

카티션 곱은 두개 이상의 테이블에 대해 연결 가능한 행을 모두 결합하는 조인 방식. WHERE절에서 조인 조건적을 생략하거나 조인 조건을 잘못 설정하여 양쪽 테이블을 연결하는 조건을 만족하는 행이 하나도 없는 경우에 자주 발생한다. 카티션 곱이 발생하면 각 테이블의 행의 수를 곱한 만큼의 조인 결과가 생성된다.

대용량의 테이블에서 카티션 곱이 발생할 경우 SQL 명령문의 처리 속도가 현저하게 저하되므로 주의.


1. CROSS JOIN1

1. CROSS JOIN1

MAIN

- BACK1테이블과 BACK2테이블의 모든 관측치를 기준 변수 없이 모두 조인.


 1) 오라클

SELECT A.NAME AS NAME1,

       B.NAME AS NAME2,

       A.KEY,B.JUMSU

FROM   BACK1 A CROSS JOIN BACK2 B; 

 

    NAME1 NAME2  KEY  JUMSU

   김국진 백승민 150    55

   백승민 백승민 176    55

   양혜수 백승민 140    55

   홍길동 백승민 155    55

   김국진 양혜수 150    140

   백승민 양혜수 176    140

   양혜수 양혜수 140    140

   홍길동 양혜수 155    140

   김국진 이수남 150    150

   백승민 이수남 176    150

   양혜수 이수남 140    150

   홍길동 이수남 155    150

 

2) PROC SQL

PROC SQL;

  CREATE TABLE CROSS1 AS

    SELECT A.NAME AS NAME1,

          B.NAME AS NAME2,

          A.KEY,B.JUMSU

   FROM BACK1 A CROSS JOIN BACK2 B;

QUIT;

 

   NAME1 NAME2 key JUMSU

   김국진    백승민 150        55

   백승민    백승민 176        55

   양혜수    백승민 140        55

   홍길동    백승민 155        55

   김국진    양혜수 150      140

   백승민    양혜수 176      140

   양혜수    양혜수 140      140

   홍길동    양혜수 155      140

   김국진    이수남 150      150

   백승민    이수남 176      150

   양혜수    이수남 140      150

   홍길동    이수남 155      150

 

3) DATA STEP

DATA CROSS2;

      RETAIN NAME1 NAME2 KEY JUMSU;

 SET BACK1(RENAME=(NAME=NAME1));

     DO I=1 TO KOBS;

        SET BACK2(RENAME=(NAME=NAME2)) 

                  NOBS=KOBS POINT=I;

        OUTPUT;

     END;

RUN;

   NAME   key JUMSU

   백승민 150    55

   양혜수 150   140

   이수남 150   150

   백승민 176    55

   양혜수 176   140

   이수남 176   150

   백승민 140    55

   양혜수 140   140

   이수남 140   150

   백승민 155    55

   양혜수 155   140

   이수남 155   150

 

맨 위로 이동 맨 위로 이동