INNER JOIN

    SELECT *
    FROM 테이블A
    INNER JOIN 테이블B
    ON A.KEY = B.KEY

    LEFT JOIN

    SELECT *
    FROM 테이블A
    LEFT JOIN 테이블B
    ON A.KEY = B.KEY
    ...테이블 연결가능!!
    LEFT JOIN 테이블C
    ON B.KEY = C.KEY
    LEFT JOIN 테이블D
    ON C.KEY = D.KEY

    테이블 A

    속성1 속성2 속성3 속성4
    1 A 11 3
    2 B 22 4
    3 C 33 1
    4 D 44 NULL

    테이블 B

    속성5 속성6 속성7 속성8
    1 44 100
    2 55 200
    3 66 300

     

    LEFT OUTER JOIN 결과

    SELECT *
    FROM 테이블A
    LEFT JOIN 테이블B
    ON A.속성4 = B.속성5

    1. 테이블 B 속성을 그대로 붙여준다. ->

    2. 키값별로 칼럼 적용 

    테이블 A의 정보는 다 가져오고

    테이블 A의 키값에 있는 정보를 가진 테이블 B의 데이터만 가져와서 테이블이 완성된다.


    크로스 조인 - CROSS JOIN

    상호조인이나 교차조인이라고 하며 조인한 테이블의 모든 조합을 나타낸다.

    SELECT 테이블명.컬럼명, ...
    FROM 테이블명1 CROSS JOIN 테이블명2 
    ON 테이블명1.컬럼명1 = 테이블명2.컬럼명2

    안시 조인 - ANSI JOIN 

    국제적 표준 조인방식

     

    ANSI 내부조인

    SELECT e.employee_id , d.department_name
    FROM employees e, departments d
    WHERE e.department_id = d.department_id

     

     

    ANSI조인 1

    SELECT e.employee_id , d.department_name
    FROM employees e INNER JOIN departments d
    ON e.department_id = d.department_id

    기존은 where 절에서만 조인

    ansi조인은 from 절에서 innerjoin 

    on 이라는 새로운명령어를 쓴다.

     

    ANSI조인 2

    SELECT e.employee_id , d.department_name, department_id
    FROM employees e INNER JOIN departments d
    USING (department_id);

    조인하는 두 테이블의 칼럼명이 같을경우 using 을 사용하여 쉽게 쓸 수 있다.

    단, using 쓸려면 select절에도 해당 칼럼이름앞에  alias를 붙이면 오류가 난다.

     

     

    ANSI 외부조인

    FROM TABLE A [ LEFT/ RIGHT / FULL ] OUTER JOIN TABLE B

    아웃터조인이다. 기존은 데이터가 없는쪽에 (+)를 붙혔다면 ANSI조인은

    아웃터테이블(데이터 가지고 있는 테이블)의 위치를 같이 적어준다( 왼쪽,오른쪽)

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading