반응형
본 포스트는 NATURAL JOIN에 대한 개념과 예를 드룬다.
NATURAL JOIN
01 NATURAL JOIN = INNER JOIN
NATURAL JOIN은 간단하게 테이블을 JOIN하는 방법 중 하나이다. 기존의 INNER JOIN에서 사용했던 ON 을 이용해 조건을 제시하지 않고 같은 이름의 컬럼을 찾아 자동으로 테이블을 조인해준다.
SELECT A.*, B.*
FROM TABLE01 A
NATURAL JOIN TABLE02 B
;
따라서 INNER JOIN을 좀 더 단순하게 이용할 수 있다. 다만 JOIN되는 두 테이블에 공통되는 이름의 컬럼이 있어야 한다.
EXAMPLE
TABLE01
id | name | city |
1 | 가나다 | 서울 |
2 | 라마바 | 제주 |
3 | 사아자 | 뉴욕 |
TABLE02
city | country |
서울 | 대한민국 |
제주 | 대한민국 |
뉴욕 | 미국 |
SQL문 (QUERY)
SELECT A.*, B.*
FROM TABLE01 A
NATURAL JOIN TABLE02 B
;
결과
id | name | city | country |
1 | 가나다 | 서울 | 대한민국 |
2 | 라마바 | 제주 | 대한민국 |
3 | 사아자 | 뉴욕 | 미국 |
02 같은 이름의 컬럼이 두개 이상일 경우
같은 이름의 컬럼이 같은 게 여러개일 경우엔 모두가 일치 할 경우에만 조인이 이뤄진다. 윗 단락에서 NATURAL JOIN은 INNER JOIN이라고 했듯이 결과는 교집합을 나타낸다. 따라서 모든 조건이 만족하지 않는다면 조인이 되지 않는다.
EXAMPLE
TABLE01
id | name | city |
1 | 가나다 | 서울 |
2 | 라마바 | 제주 |
3 | 사아자 | 뉴욕 |
TABLE02
city | country | 거리 |
서울 | 대한민국 | 가까움 |
제주 | 제주 | 가까움 |
뉴욕 | U.S.A. | 멈 |
뮌헨 | 독일 | 멈 |
결과
id | name | city | country |
1 | 가나다 | 서울 | 대한민국 |
2 | 라마바 | 제주 | 대한민국 |
반응형
'ICT > SQL' 카테고리의 다른 글
SQL 문법 | 주요 데이터 타입 (0) | 2021.09.09 |
---|---|
SQL 문법 | 함수 | COUNT SUM AVG DISTINCT (0) | 2021.09.08 |
SQL 문법 | 데이터 조회 및 필터 | CROSS JOIN (0) | 2021.09.08 |
SQL 문법 | 데이터 조회 및 필터 | FULL OUTER JOIN (0) | 2021.09.07 |
SQL 문법 | 데이터 조회 및 필터 | SELF JOIN (0) | 2021.09.07 |
댓글