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

2. 내부 조인(INNER JOIN)


내부조인 (Inneer Join) 은 단순히 연결만 한 개념이 아니라 결과값이 일치하는 것만 join을 한 것이다. 기준이 되는 테이블과 일치하는 값만 join 하여 return 한다고 생각을 하면 된다.


1. INNER JOIN 1
2. INNER JOIN 2
3. NATURAL JOIN
4. S-PLUS
5. PROC SQL

1. INNER JOIN 1

MAIN

- 아래 예제는 BACK1 테이블과 BACK2 테이블에서 NAME이 같은 관측치를 출력한다.


 1) 오라클

SELECT A.NAME,A.KEY,B.JUMSU

FROM   BACK1 A, BACK2 B

WHERE  A.NAME = B.NAME;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

2) PROC SQL

PROC SQL;

  CREATE TABLE INNER1 AS

    SELECT A.NAME,A.KEY,B.JUMSU

    FROM   BACK1 A, BACK2 B

    WHERE  A.NAME = B.NAME;

QUIT;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

 

3) DATA STEP

PROC SORT DATA=BACK1;

      BY NAME;

RUN;

PROC SORT DATA=BACK2;

      BY NAME;

RUN;

DATA INNER2;

 MERGE BACK1(IN=A) BACK2(IN=B);

      BY NAME;

      IF A AND B;

RUN;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

맨 위로 이동 맨 위로 이동


2. INNER JOIN2

MAIN

- 아래 예제는 INNER JOIN의 다른 방식으로 'INNER JOIN ~ ON' 방식

- BACK1 테이블과 BACK2 테이블에서 NAME이 같은 관측치를 출력한다.


 1) 오라클

SELECT A.NAME,A.KEY,B.JUMSU

FROM   BACK1 A

INNER JOIN BACK2 B

ON A.NAME = B.NAME;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

2) PROC SQL

PROC SQL;

  CREATE TABLE INNER3 AS

    SELECT A.NAME,A.KEY,B.JUMSU

    FROM BACK1 A

         INNER JOIN BACK2 B

               ON A.NAME = B.NAME;

QUIT;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

3) DATA STEP

PROC SORT DATA=BACK1;

      BY NAME;

RUN;

PROC SORT DATA=BACK2;

      BY NAME;

RUN;

DATA INNER2;

 MERGE BACK1(IN=A) BACK2(IN=B);

      BY NAME;

      IF A AND B;

RUN;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

맨 위로 이동 맨 위로 이동


3. 자연조인(NATURAL JOIN)

MAIN

NATURAL JOIN 은 두 테이블의 동일한 이름을 가지는 공통 칼럼을 이용하여 내부조인 수행.

동일한 컬럼을 내부적으로 찾게 되므로 테이블 Alias를 주면 오류가 발생 합니다.

- BACK1 테이블과 BACK2 테이블에서 NAME이 같은 관측치를 출력한다.


 1) 오라클

SELECT *

FROM   BACK1 A

NATURAL JOIN BACK2 B;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

2) PROC SQL

PROC SQL;

  CREATE TABLE INNER4 AS

    SELECT *

    FROM   BACK1 A

           NATURAL JOIN BACK2 B;

QUIT;

      NAME   KEY    JUMSU

      백승민 176    55

      양혜수 140    140

맨 위로 이동 맨 위로 이동