2010.07.25 15:37 연구실/SQL

이 포스트를 만든 목적

  • LEFT JOIN, RIGHT JOIN, INNER JOIN 까지 했으니, 이것도 마저 정리 하기 위해

이 포스트의 준비 상황

  • DB : PostgreSQL 8.4.2 on Debian 5.0
  • DB Management GUI Tool : pgAdmin 1.10.1
  • Editer : gVim 7.2
  • 인터넷을 할 수 있는 환경

참조 링크

내용

SQL FULL JOIN 은 무엇인가?

  • JOIN 문 중 하나이다.
  • 여러 테이블의 rows 을 합집합 것이다.

문법은 어떻게 되는가?

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

  1. 늘 그렇듯이 종이와 연필을 준비 한다.

  2. 내용이 있는 Left table 이하 L, Right table 이하 R 을 그린다.
  3. 내용이 없는 Full table 이하 F 를 그린다.

  4. SQL FULL JOIN 의 조건 ON 절을 보며

  5. L->row 에 엮일 수 있는 R->rows 을 찾는다.
  6. 만약 1개 이상 엮일 수 있다면, F에 L->row * R->rows 를 기록한다.
  7. 만약 엮일 수 있는게 없다면, F에 L->row 만을 기록한다.

  8. L->rows 을 모두 찾을 때까지, 5 ~ 6을 반복 한다.
  9. 마지막으로 한번도 엮인 적이 없는 R->rows 을 F에 기록한다.

  10. 이렇게 나온 F는 FULL JOIN 의 결과이다.

맛보기 그림

Right Table

Left Table

Using SQL

해석, 그냥 두개의 테이블을 합친다.

여담

  • 인터넷이 없었으면, 어떻게 원하는 정보를 찾을 수 있을까? 가끔 이런 생각을 한다. "무선 공유기를 하나 구입해서 집 주변을 모두 무상으로 Wi-Fi 를 제공해 주면 어떨까?"
  • 요즘 들어 포스트를 길게 쓰지 않으려 한다. 읽기가 싫어지기 때문이다.

  • FULL JOIN 에선 굳이 Left, Right 를 나눌 필요가 없다. 왜냐하면 .. 그냥 두개 다 합치기 떄문이다.
  • 맛보기로 보여준 예제가 LEFT OUTER JOIN 과 다를게 없으니, 맛이나 볼 수 있을까 잠시 생각했다.(.. 그리고 고치지 않는다.)


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

댓글을 달아 주세요