inner join, outer join 차이

twoStones·2022년 3월 15일

데이터베이스

목록 보기
1/1

join

정의

  • 여러 테이블에 흩어져 있는 정보 중 사용자가 필요한 정보만 가져와서 가상의 테이블처럼 만들어서 결과를 보여주는 것. 즉, 2개 이상의 테이블을 조합하여 하나의 열로 표현하는 것.

종류

  • INNER JOIN
  • CROSS JOIN
  • OUTER JOIN
  • SELF JOIN

INNER JOIN

  • inner join 은 key 값이 있는 테이블의 컬럼 값을 비교 한 후 조건에 맞는 값을 가져오는 것. 즉, 서로 매칭되는 row만 가져오는 것.
  • 교집합
  • 일치하지 않는 레코드는 모두 버리는거다
  • inner join 은 어느 테이블을 먼저 읽어도 결과가 달라지지 않는다.

OUTER JOIN

  • outer join 은 join 하는 여러 테이블에서 한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없는 경우
  • 매칭되는 데이터가 있다면 매칭 되는 데이터를 가져오고 없으면 null 표시
  • 데이터가 있는 쪽 테이블의 내용을 전부 출력하는 방법.
  • 합집합
  • 일치하지 않더라도 버리지 않고 NULL로 채워서 결과를 응답
  • outer join은 outer가 되는 테이블을 먼저 읽으므로 조인 순서를 옵티마이저 선택할 수 없다
  • 옵티마이저가 outer join을 inner join으로 변형시켜 처리되지 않도록 주의
  • a 테이블과 b 테이블 간 null을 갖지 않는 컬럼을 key 컬럼을 join을 하면 이건 결국 inner join과 같다

LEFT OUTER JOIN

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

RIGHT OUTER JOIN

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

참고

https://jhkang-tech.tistory.com/55
https://devlog-wjdrbs96.tistory.com/347

profile
일단 작성

0개의 댓글