2010.07.17 22:33 연구실/SQL

이 포스트를 만든 목적

  • 비오는데 심심해서
  • 받아 먹은 만큼 돌려 줘야 되기 때문에

이 포스트의 준비 상황

  • DB는 PostgreSQL 8.4.2 을 사용 했다.
  • DB GUI 툴로는 pgAdmin 1.10.1 을 사용 했다.
  • OS 는 Windows 7 K 32bit 이다.

참조 링크

내용

SQL LEFT JOIN 은 무엇인가?

  • JOIN 중 하나이다.
  • LEFT OUTER JOIN 이라고도 불린다.(PostgreSQL 에선)

  • JOIN 을 위한 조건에 엮인(연결 된, 솎아 낸, 결합 된, 여과 된, 걸러 낸) row 가 아니라도, return 되는 JOIN 이다.
  • LEFT JOIN 은 왼쪽 테이블이 기준이 된다.
  • INNER JOIN 과 마찬가지로 테이블이 엮이는 조건으로 ON 키워드를 사용 한다.

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

  1. 연필과 종이를 준비한다.

  2. 내용이 있는 테이블 A, 테이블 B를 그린다.
  3. 테이블 A가 LEFT OUTER JOIN 대상이 된다.
  4. 내용없는 테이블 C를 준비하며, 이 테이블에 테이블 A, 테이블 B의 칼럼들을 그린다.

  5. 각 테이블 A의 row 를 기준으로 테이블 B의 rows을 찾는다.
  6. 테이블 B에서 찾은 row가 1개 아상 일 경우, 테이블 C 에 테이블 A row * 테이블 B rows 을 기록한다.
  7. 테이블 B에서 찾은 row가 0개 일 경우, 테이블 C에 테이블 A row만 기록하고 테이블 B column에는 NULL로 기록한다.

  8. 이것이 LEFT OUTER JOIN 의 결과이다.

문법은 어떻게 되는가?

  • LEFT OUTER JOIN 의 왼쪽에 있는 것이 LEFT OUTER JOIN의 대상이 된다.
  • ON 은 JOIN 조건이다.

맛보기 그림

테이블 A

테이블 B

example

해석

여담

  • 빨래 해야 되는데, 비가 그치지 않네. : )


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

댓글을 달아 주세요

  1. forc1 2012.05.27 13:24 신고  Addr  Edit/Del  Reply

    쉬운설명 감사합니다. 이해가 팍팍 되었습니다 :D