연구실/SQL
SQL RIGHT JOIN or RIGHT OUTER JOIN - SQL에서 오른쪽으로 외부 결합 사용하기
최익필
2010. 7. 23. 00:40
이 포스트를 만든 목적
- 잊어 먹을 때 쯤, 한개씩 정리하는 맛으로 만들었다.
이 포스트의 준비 상황
- 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 의 특징이다.
문법은 어떻게 되는가?
어떻게 이해 하는게 좋은가?
- 종이와 연필을 준비한다.
- 왼쪽 테이블 L 과 오른쪽 테이블 R 을 준비한다.
- 그리고 L 과 R을 결합할 테이블 U 를 준비한다.
- 이제 R 의 row 1개와 ON 절에 의해 연관된 L 의 row를 찾는다.
- 만약 L 에서 찾은 row가 한개 이상일 경우, R->row * L->rows 를 U에 기입한다.
- 만약 L 에서 찾은 row가 0개 일 경우, R->row 만 U 에 기입한다.
- R->row 를 다 살펴 볼 때까지 4 ~ 6번을 반복한다.
- 다 살펴 보았다면, 모두 기입된 테이블 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을 해석해 놨다. : )