본문 바로가기
CS/데이터베이스

[Oracle] 여러 테이블 데이터 조인 (ON절)

by 김크롱 2020. 9. 14.

여러 테이블 데이터 조인 (ON절)

: WHERE절 대신 사용하는 ON절

- ANSI/ISO SQL:1999 standards 조인

 

* JOIN 작성법 두 가지

 - 오라클 조인

 - ANSI/ISO SQL:1999 standards 조인

 

 - 오라클 조인

조인 작성법 종류
오라클 조인 EQUI JOIN
NON EQUI JOIN
OUTER JOIN
SELF JOIN

 

 - ANSI/ISO SQL:1999 standards 조인

조인 작성법 종류
ANSI/ISO SQL:1999 standards 조인 ON절을 사용한 JOIN
LEFT/RIGHT/FULL OUTER JOIN
USING절을 사용한 JOIN
NATURAL JOIN
CROSS JOIN

 

 

ON절 기본형

SELECT t1.column1 as nickname1, t1.column2 as nickname2, t1.column3 as nickname3,
            t2.column4 as nickcname4
    FROM tablename1 t1 JOIN tablename2 t2
    ON (t1.column5 = t2.column5)
    WHERE t1.column2='KOREA';

: t1.column5와 t2.column5가 같을 때, t1.column2가 'KOREA' 라면, t1의 column1, column2, column3와 t2의 column4를 출력

 

오라클 EQUI JOIN과 ANSI/ISO EQUI JOIN

--오라클 EQUI JOIN
SELECT t1.column1, t2.column2
    FROM tablename1 t1, tablename2 t2
    WHERE t1.column3 = t2.column3;
    
--ANIN/ISO EQUI JOIN
SELECT t1.column1, t2.column2
    FROM tablename1 t1 JOIN tablename2 t2
    ON (t1.column3 = t2.column3);

: 같은 결과를 출력하는 쿼리

 

--오라클 EQUI JOIN
SELECT t1.column1, t2.column2
    FROM tablename1 t1, tablename2 t2, tablename3 t3
    WHERE t1.column3 = t2.column3
    and t1.column4 BETWEEN t3.column5 AND t3.column6;

--ANSI/ISO EQUI JOIN
SELECT t1.column1, t2.column2, t3.column7
    FROM tablename1 t1
    JOIN tablename2 t2 ON (t1.column3 = t2.column3)
    JOIN talbename3 t3 ON (t1.column4 BETWEEN t3.column5 AND t3.column6);

: 여러 테이블을 조회할 때 (조건 수 = 테이블 수 - 1)