• SQL LEFT OUTER JOIN 키워드

    2021. 6. 12.

    by. Jacob Lee

    728x90

     


     

    LEFT OUTER JOIN 키워드

    SQL에서 LEFT OUTER JOIN을 사용하면 왼쪽 테이블에 있는 모든 레코드와 오른쪽 테이블에서 매칭 하는 레코드를 반환할 수 있다. 추가적으로 LEFT OUTER JOIN과 LEFT JOIN은 같은 의미로 사용된다.

     

    Image from CodingHorror

     

    LEFT OUTER JOIN의 기본 문법은 다음과 같다.

    SELECT column_name
    FROM table1
    LEFT OUTER JOIN(or LEFT JOIN) table2
    ON table.column_name = table2.column.name;

     

    이전의 테이블 두개를 호출하는 SQL문에서는 테이블 순서가 바뀌어도 같은 결괏값을 반환했기 때문에 테이블의 순서는 전혀 중요하지 않았다. 하지만 LEFT JOIN을 사용할 때라면 테이블의 순서가 중요하다는 것을 잊지 말아야 한다.

     

    왜냐면 첫 번째 언급하는 테이블로 왼쪽에 올 테이블을 명시해주기 때문이다. 즉, Table A에서 A의 단독적인 데이터와 A와 B의 공통적인 데이터를 가져오지만, Table B의 단독적인 데이터는 반환하지 않는다는 것이다.

     

    LEFT OUTER JOIN 사용하기

    registrations 테이블과 logins 테이블에서 LEFT JOIN을 사용해보자.

    SELECT * FROM registrations
    LEFT OUTER JOIN logins
    ON registrations.name = logins.name;

     

    Image from Pierian Data
    Image from Pierian Data

    위와 같이 registrations 테이블 모든 레코드와 두 테이블에서 매칭하는 레코드가 반환되었다.

    다시 한번, LEFT JOIN에서 테이블 순서는 중요하다는 것을 잊지 말자.

     

    WHERE절로 유니크한 값 가져오기

    LEFT JOIN과 WHERE절을 같이 사용함으로써, 왼쪽 테이블에서만 유니크한 값을 반환할 수 있다.

    SELECT * FROM table1
    LEFT OUTER JOIN table2
    ON table1.column_name = table2.column_name
    WHERE table2.id IS NULL;

    Image from Pierian Data

    위와 같이 SQL문을 사용함으로써 오직 첫 번째 테이블에서 유니크한 값만 반환했음을 확인할 수 있다.

     

    728x90

    'Back-end > SQL' 카테고리의 다른 글

    SQL UNION 연산자  (0) 2021.06.14
    SQL RIGHT JOIN 키워드  (0) 2021.06.13
    SQL FULL OUTER JOIN 키워드  (0) 2021.06.09
    SQL INNER JOIN 키워드  (0) 2021.06.02
    SQL JOIN절  (0) 2021.06.01

    댓글