[RDB] 테이블 결합 (JOIN) 정리
결합의 종류
- 교차결합 ( == 곱집합. A,B,C * 1,2,3)
- select * from table a, table b
- 내부결합 (Inner Join)
- 교차결합에서 원하는 조합을 검색하는 것
- 보통 PK를 이용함
- 일반적으로 Inner Join 키워드를 이용해서 많이 함
- 외부결합 (Outer Join)
결합 방법으로는 교차결합보다 내부결합을 많이 씀
equal 조인과 inner join 키워드 명시의 차이
- 기본적으로 equal 조인과, inner join 키워드 명시는 동일함
- 다만, 키워드를 사용하면 보다 디테일한 처리를 명시할 수 있음
- outer, left 등등..
- 그렇지만 보통 inner join에서 끝난다. DB에서 로직을 많이 안 쓰는 추세이기 때문에.
inner join syntax
SELECT * FROM table_name1 INNER JOIN table_name2 ON [결합조건]
외부 결합 (Outer Join)
- 교차결합으로 결합 조건을 지정하여 검색한다는 것은 Inner Join과 동일
- 어느 한 쪽에만 존재하는 데이터행을 어떻게 다룰지를 변경할 수 있는 결합 방법
- A / B 테이블 중 A 테이블에만 행이 존재한다면?
- 어느 테이블을 기준으로 출력할 것인지 정한다. 왼쪽 또는 오른쪽
- 기준이 아닌 테이블에서 조건이 매칭되지 않는 열의 데이터는 전부 null
- 기준이 되는 테이블의 열은 전부 다 나옴
- LEFT JOIN 또는 RIGHT JOIN으로 Outer Join을 할 수 있다.
- 구식 결합방법 (+) 은 사용하지 않는다. 표준을 사용한다.
댓글 영역