Post

Join





Join

  • 조인이란 테이블 간의 논리적인 연관 관계를 기반으로 여러 테이블의 데이터를 한 번에 엑세스하는 데 사용되는 방법이다.
  • 네 가지의 메인 조인 타입을 알아본다.
    • Inner Join
    • Outer Join
    • Self Join
    • Cross Join



Inner Join

img-description 내부 조인

  • 내부 조인은 양쪽 테이블의 값이 일치하면서, 양쪽 테이블에 모두 존재하는 레코드들을 반환한다.



img-description 내부 조인 결과

  • select [컬럼] from [좌측 테이블] inner join [우측 테이블] on [조인 조건];
  • 내부 조인 결과로 총 4개의 로우가 조회 되었다.
  • 남자들의 선택과 여자들의 이름이 일치하는 경우만 조회됐다.
  • 선택을 하지 않은 영수와 쌩뚱맞게 참가하지 않은 옥자를 선택한 상철은 조회되지 않았다.



Outer Join

  • 내부 조인은 양쪽 테이블의 값이 일치할 때만 데이터를 반환했다.
  • 외부 조인은 양쪽 테이블의 값이 일치하지 않더라도 데이터를 반환한다.

Left Outer Join

img-description 좌측 외부 조인

  • left outer join은 왼쪽 테이블 기준의 외부 조인이다.

img-description 좌측 외부 조인 결과

  • select [컬럼] from [좌측 테이블] left outer join [우측 테이블] on [조인 조건];
  • 이번에는 아무도 선택하지 않은 용수와 뚱딴지 선택을 한 상철까지 조회되었다.
  • left outer join은 좌측 테이블에 대해서는 모든 컬럼이 조회된다.



Right Outer Join

img-description 우측 외부 조인

  • right outer join은 오른쪽 테이블 기준의 외부 조인이다.

img-description 우측 외부 조인 결과

  • select [컬럼] from [좌측 테이블] right outer join [우측 테이블] on [조인 조건];
  • right outer join으로 우측 테이블인 여성 참가자들 기준으로 조회가 이뤄졌다.
  • 아무한테도 선택 받지 못한 정자와 정숙도 조회되었고,
  • 다수에게 선택 받은 옥순은 두 개의 로우가 조회된 것을 볼 수 있다.

img-description 좌축 외부 조인으로 바꿔서 조회한 결과

  • select [컬럼] from [좌측 테이블] right outer join [우측 테이블] on [조인 조건];
    • 을 뒤집으면
  • select [컬럼] from [우측 테이블] left outer join [좌측 테이블] on [조인 조건];
    • 이다.
  • 둘의 조회 결과는 컬럼 순서가 뒤집힌 거 빼고는 같다.



Self Join

  • 테이블 하나로 스스로 조인하는 것이다.

img-description 셀프 조인 결과

  • 동물 아파트에 살고 있는 입주민들의 이름과 아파트 호수를 나타내는 Animal 테이블이 있다고 할 때,
  • 강아지와 같은 곳에 살고 있는 애들을 찾으려고 한다.
  • Animal 테이블을 셀프 조인해서 dog와 같은 아파트 호수를 갖는 애들을 보여줄 수 있다.



Cross Join

img-description 크로스 조인

  • 크로스 조인은 양쪽 테이블을 곱하기 하는 느낌이다.
  • 좌측 테이블의 모든 레코드와 우측 테이블의 모든 레코드를 조합해 만들 수 있는 모든 결과를 반환한다.

img-description 크로스 조인 결과

  • 모든 도형과 모든 색상의 조합을 반환하는 걸 볼 수 있다.
  • 크로스 조인은 따로 조인 조건을 넣어주지 않는다.





This post is licensed under CC BY 4.0 by the author.