이 포스트를 만든 목적
- 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 을 합집합 것이다.
문법은 어떻게 되는가?
어떻게 이해 하는게 좋은가?
- 늘 그렇듯이 종이와 연필을 준비 한다.
- 내용이 있는 Left table 이하 L, Right table 이하 R 을 그린다.
- 내용이 없는 Full table 이하 F 를 그린다.
- SQL FULL JOIN 의 조건 ON 절을 보며
- L->row 에 엮일 수 있는 R->rows 을 찾는다.
- 만약 1개 이상 엮일 수 있다면, F에 L->row * R->rows 를 기록한다.
- 만약 엮일 수 있는게 없다면, F에 L->row 만을 기록한다.
- L->rows 을 모두 찾을 때까지, 5 ~ 6을 반복 한다.
- 마지막으로 한번도 엮인 적이 없는 R->rows 을 F에 기록한다.
- 이렇게 나온 F는 FULL JOIN 의 결과이다.
맛보기 그림
Right Table
Left Table
Using SQL
해석, 그냥 두개의 테이블을 합친다.
- 인터넷이 없었으면, 어떻게 원하는 정보를 찾을 수 있을까? 가끔 이런 생각을 한다. "무선 공유기를 하나 구입해서 집 주변을 모두 무상으로 Wi-Fi 를 제공해 주면 어떨까?"
- 요즘 들어 포스트를 길게 쓰지 않으려 한다. 읽기가 싫어지기 때문이다.
- FULL JOIN 에선 굳이 Left, Right 를 나눌 필요가 없다. 왜냐하면 .. 그냥 두개 다 합치기 떄문이다.
- 맛보기로 보여준 예제가 LEFT OUTER JOIN 과 다를게 없으니, 맛이나 볼 수 있을까 잠시 생각했다.(.. 그리고 고치지 않는다.)
'연구실 > SQL' 카테고리의 다른 글
SQL Constraints - 테이블 제약의 종류 (0) | 2010.08.19 |
---|---|
SQL CREATE TABLE - TABLE 생성하기 (0) | 2010.08.10 |
SQL CREATE DATABASE - DB 생성하기 (0) | 2010.08.10 |
SQL SELECT INTO - SELECT 결과 복사하기, 테이블 복사하기 (0) | 2010.08.08 |
SQL UNION - 두개 이상의 SELECT 합치기 (1) | 2010.08.03 |
SQL RIGHT JOIN or RIGHT OUTER JOIN - SQL에서 오른쪽으로 외부 결합 사용하기 (0) | 2010.07.23 |
SQL LEFT JOIN or OUTER LEFT JOIN - SQL 외부 결합 사용하기 (1) | 2010.07.17 |
SQL INNER JOIN - SQL 에서 가장 많이 사용 되는 조인, 일반적인 조인 사용하기 (3) | 2010.07.17 |
SQL JOIN - SQL 테이블 연결하기 (0) | 2010.07.16 |
SQL LIMIT, TOP, ROWNUM - SQL 결과 갯수 제한해서 가져오기 (1) | 2010.07.15 |
최근댓글