[SQL] JOIN 의 종류

eun·2022년 6월 4일
0

SQL

목록 보기
2/8
post-thumbnail

JOIN

INNER JOIN

1) INNER JOIN

  • 교집합
  • 특정 컬럼 기준, 정확히 매칭된 요소만 출력 중복되는 요소만 출력한다
  • 따라서 겹치지 않는 행이 존재할 경우, 그 행은 결과에서 제외한다
  • NULL값은 포함되지 않는다

OUTER JOIN

  • 특정 컬럼 기준, 한쪽은 모두 출력하고 다른 한쪽은 매칭되는 요소만 출력한다
  • 동일한 값이 없는 행도 반환할 때 사용하는 구문이다
  • 즉, 조건에 맞지 않는 데이터도 표시하고 싶을 때 OUTER JOIN을 사용하며, NULL값을 포함하게 된다

1) LEFT JOIN

  • 왼쪽의 모든 행을 조회한다
  • 조인문의 왼쪽 테이블의 모든 결과를 가져온 후, 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다
  • 다시 말해서, 정보를 온전하게 출력하고 싶은 테이블을 왼쪽에 두고, 정보가 있으나 없으나 상관없는 테이블은 오른쪽에 두면 된다.

2) RIGHT JOIN

  • 오른쪽의 모든 행을 조회한다
  • 조인문의 오른쪽 테이블의 모든 결과를 가져온 후, 왼쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다

3) FULL OUTER JOIN

  • 합집합
  • INNER + LEFT OUTER + RIGHT OUTER
  • 테이블간 출력 가능한 모든 데이터를 포함해 출력한다
  • 아래와 같이 연달아서 보여준다
    (출처: fast campus)
  • 결과 테이블이 매우 커질 수 있으므로 주의해야 한다
  • mysql에서는 FULL OUTER JOIN을 지원하지 않으므로, LEFT JOINRIGHT JOINUNION하는 방식으로 만들어준다
profile
study archive 👩‍💻

0개의 댓글