DB

[MSSQL] JOIN 설명 및 사용법

지과쌤 2022. 3. 3.
반응형

목차

    조인이란?

    두개 이상의 테이블이나 베이터베이스를 연결하여 데이터를 검색하는 방법이다.

    검색하고 싶은 컬럼이 다른 테이블에 있을 경우 주로 사용하며, 여러 개의 테이블을 마치 하나의 테이블인 것처럼 활용하는 방법.

     

    보통 PK 혹은 FK로 두 테이블을 연결한다.

    테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되고 있어야 한다.

     

    INNER JOIN

    교집합

    기준 테이블과 조인한 테이블의 중복된 값을 보여준다.

    다시말해, 결과값은 A테이블을 기준으로 A테이블과 B테이블이 모두 갖고 있는 데이터만 검색된다.

    -- 문법
    SELECT (테이블별칭.칼럼, 테이블별칭.칼럼)
    FROM 기준테이블 별칭
    INNER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 ...
    
    -- 예제
    SELECT (A.NAME, B.AGE)
    FROM EX_TABLE A
    INNER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP AND A.DEPT = B.DEPT

     

    LEFT OUTER JOIN

    기준 테이블의 값 +  기준 테이블과 조인 테이블의 중복된 값을 보여준다.

    왼쪽 테이블을 기준으로 조인을 진행하는것이다.

    다시말해, 결과는 A 테이블의 모든 데이터와 A테이블과 B 테이블의 중복되는 값이 검색된다.

    -- 문법
    SELECT (테이블별칭.칼럼, 테이블별칭.칼럼)
    FROM 기준테이블 별칭
    LEFT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 ...
    
    -- 예제
    SELECT (A.NAME, B.AGE)
    FROM EX_TABLE A
    LEFT OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP AND A.DEPT = B.DEPT

     

    RIGHT OUTER JOIN

    LEFT OUTER JOIN의 반대.

    오른쪽 테이블을 기준으로  조인을 하는것.

    다시말해, B 테이블의 모든 데이터와 A테이블과 B테이블의 중복되는 값이 검색된다.

    -- 문법
    SELECT (테이블별칭.칼럼, 테이블별칭. 칼럼)
    FROM 기준테이블 별칭
    RIGHT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 ...
    
    -- 예제
    SELECT (A.NAME, B.AGE)
    FROM EX_TABLE A
    RIGHT OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP AND A.DEPT = B.DEPT

     

    FULL OUTER JOIN

    합집합

    A테이블과 B테이블이 갖고있는 모든 데이터가 검색된다.

    사실상 기준 테이블의 의미가 없다.

    --문법--
    SELECT (테이블별칭.칼럼, 테이블별칭.칼럼)
    FROM 기준테이블 별칭
    FULL OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키...
    
    --예제--
    SELECT (A.NAME, B.AGE)
    FROM EX_TABLE A
    FULL OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP AND A.DEPT = B.DEPT

     

    CROSS JOIN

    크로스 조인은 모든 경우의 수를 전부 표현해주는 방식이다.

    기준 테이블이 A일 경우, A의 데이터 한 ROW를 B 테이블 전체와 JOIN하는 방식이다.

    따라서 결과값도 N * M 이 될 것이다.

    위 예시에선 A테이블에 데이터가 3개, B테이블에 데이터가 4개 있으므로 총 12개가 검색된다.

    --문법(첫번째방식)--
    SELECT (테이블별칭.칼럼, 테이블별칭.칼럼)
    FROM 기준테이블 별칭
    CROSS JOIN 조인테이블 별칭
    
    --예제(첫번째방식)--
    SELECT (A.NAME, B.AGE)
    FROM EX_TABLE A
    CROSS JOIN JOIN_TABLE B
    
    ======================================================================
    
    --문법(두번째방식)--
    SELECT (테이블별칭.칼럼, 테이블별칭.칼럼)
    FROM 기준테이블 별칭,조인테이블 별칭
    
    --예제(두번째방식)--
    SELECT (A.NAME, B.AGE)
    FROM EX_TABLE A,JOIN_TABLE B

     

    SELF JOIN

    셀프조인은 자기자신과 자기 자신을 조인한다.

    다시말해 하나의 테이블을 여러번 복사해서 조인하는것이다.

    컬럼을 다양하게 변형시켜 활용할 경우, 자주 사용한다.

    --문법--
    SELECT (테이블별칭.칼럼, 테이블별칭.칼럼)
    FROM 테이블 별칭,테이블 별칭2
    
    --예제--
    SELECT (A.NAME, B.AGE)
    FROM EX_TABLE A,EX_TABLE B
    반응형

    댓글

    💲 추천 글