2010.07.23 00:40 연구실/SQL

이 포스트를 만든 목적

  • 잊어 먹을 때 쯤, 한개씩 정리하는 맛으로 만들었다.

이 포스트의 준비 상황

  • DB : PostgreSQL 8.4.2 on Debian 5.0
  • DB Management GUI Tool : pgAdmin 1.10.1
  • Editer : gVim 7.2

참조 링크

SQL RIGHT JOIN 은 무엇인가?

  • SQL JOIN 중 하나 이다.
  • 다른 DB에서는 RIGHT OUTER JOIN 이라고 불린다.
  • LEFT JOIN 과 반대로, 오른쪽 테이블을 기준으로 JOIN 한다.
  • 오른쪽 기준 테이블 row와 연관된 왼쪽 테이블 row가 없더라도, 오른쪽 테이블 row은 출력된다.
    - 이는 OUTER JOIN 의 특징이다.

문법은 어떻게 되는가?

어떻게 이해 하는게 좋은가?

  1. 종이와 연필을 준비한다.

  2. 왼쪽 테이블 L 과 오른쪽 테이블 R 을 준비한다.
  3. 그리고 L 과 R을 결합할 테이블 U 를 준비한다.

  4. 이제 R 의 row 1개와 ON 절에 의해 연관된 L 의 row를 찾는다.

  5. 만약 L 에서 찾은 row가 한개 이상일 경우, R->row  *  L->rows 를 U에 기입한다.
  6. 만약 L 에서 찾은 row가 0개 일 경우, R->row 만 U 에 기입한다.

  7. R->row 를 다 살펴 볼 때까지 4 ~ 6번을 반복한다.

  8. 다 살펴 보았다면, 모두 기입된 테이블 U가 RIGHT JOIN의 결과 이다.
    - 쉽게 생각해서 LEFT JOIN의 반대이다.

맛보기 사진

LEFT orderitems TABLE 이하 L

RIGHT products TABLE 이하 R

SQL result 이하 U

SQL interpretation

여담

  • 책을 봐보니, 외국 애들은 RIGHT JOIN 보다 LEFT JOIN을 더 많이 쓴다고 한다.
  • RIGHT JOIN의 해석을 보면 실제로 LEFT JOIN 으로 RIGHT JOIN을 해석해 놨다. : )


저작자 표시
신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요