반응형
1) Join 의 종류
| ORACLE Join | ANSI Join | |
| Inner Join | cartesion product | cross join |
| equal Join | natural join | |
| using절 | ||
| non-equal join | join-on | |
| Outer Join | outer join | LEFT | RIGHT | FULL outer join |
| Self Join | self join | self join |
2) ANSI Join
FROM절에서 join을 수행
ORACLE 외의 DBMS에서도 사용이 가능
(0) cross join
두 테이블의 행 갯수를 곱한 결과를 반환
-> 유효한 데이터가 아님
-> 잘못된 결과물(eg. 조인조건 생략 등)
(1) natural join
=를 사용하는 join
이름이 같은 컬럼끼리 Join
* alias 사용불가
SELECT 출력내용
FROM table1 NATURAL JOIN table2
[WHERE 검색조건];
자동으로 이름이 같은 컬럼을 join
두 테이블에 동일한 이름의 컬럼(공통컬럼)이 여러개 있다면 공통컬럼을 모두 만족하는 행만 join
-> 부작용이 많음
-> using절 사용
(2) using절
공통컬럼을 지정해서 natural join의 문제점을 해결
* alias 사용불가
SELECT 출력내용
FROM table1 [INNER] NATURAL JOIN table2 USING(공통col)
[WHERE 검색조건];
(3) join-on
임의의 조건을 사용하는 join
SELECT 출력내용
FROM table1 [INNER] NATURAL JOIN table2 ON join조건
[WHERE 검색조건];
join조건은
table1.공통col= table2.공통col 처럼 사용
(4) LEFT | RIGHT | FULL outer join
join조건에 만족하지 않는 행도 결과에 포함
SELECT 출력내용
FROM table1 LEFT | RIGHT| FULL OUTER JOIN table2
ON join조건 | USING(공통col)
[WHERE 검색조건];
왼쪽 테이블의 데이터를 살림
-> left outer join
오른쪽 테이블의 데이터를 살림
-> right outer join
두 테이블의 모든 데이터를 살림
-> full outer join
반응형