반응형
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) ORACLE Join
WHERE절에서 join을 수행
(0) cartesion product
두 테이블의 행 갯수를 곱한 결과를 반환
-> 유효한 데이터가 아님
-> 잘못된 결과물(eg. 조인조건 생략 등)
(1) equal join
=를 사용하는 join
PK, FK가 일치하는것 끼리 Join
SELECT 출력내용
FROM table1, table2
WHERE table1.공통col= table2.공통col;
alias 사용
* alias를 사용하면 원래 테이블명은 사용 불가
SELECT 출력내용
FROM table1 alias1, table2 alias2
WHERE alias1.공통col= alias2.공통col;
WHERE절에서 Join과 검색조건을 함께 사용하기
SELECT 출력내용
FROM table1 alias1, table2 alias2
WHERE alias1.공통col= alias2.공통col
AND 검색조건;
(2) non-equal join
=이외의 비교연산자를 사용하는 join
SELECT 출력내용
FROM table1 alias1, table2 alias2
WHERE alias1.col BETWEEN alias2.colA AND alias2.colB;
alias2.colA(min)와 alias2.colB(max)가 범위를 생성
alias1.col의 요소가 alias2.colA~ alias2.colB에 해당된다면 alias2의 colA, colB를 제외한 나머지 col과 alias1.col이 join됨
(3) outer join
join조건에 만족하지 않는 행도 결과에 포함
SELECT 출력내용
FROM table1 alias1, table2 alias2
WHERE alias1.공통col= alias2.공통col(+);
alias1의 join조건을 만족하지 않는 데이터도 결과물에 포함됨
=기준 왼쪽 테이블의 데이터를 살림
-> left join
SELECT 출력내용
FROM table1 alias1, table2 alias2
WHERE alias1.공통col(+)= alias2.공통col;
alias2의 join조건을 만족하지 않는 데이터도 결과물에 포함됨
=기준 오른쪽 테이블의 데이터를 살림
-> right join
* 양쪽에 (+)를 붙일 수 없음
반응형