백엔드/SQLD
조인
1005ptr
2020. 11. 26. 01:18
반응형
- A INNER JOIN B
- 짧게 쓰면 JOIN
- A LEFT OUTER JOIN B
- 짧게 쓰면 LEFT JOIN
- 오라클에서는 A.V1 = B.V1(+)
- A LEFT OUTER JOIN B WHERE B IS NULL
- A RIGHT OUTER JOIN B
- 짧게 쓰면 RIGHT JOIN
- 오라클에서는 A.V1(+) = B.V1
- A RIGHT OUTER JOIN B WHERE A IS NULL
- A FULL OUTER JOIN B
- 오라클 : A.V1(+) = B.V1(+)
- A FULL OUTER JOIN B WHERE A IS NULL OR B IS NULL
- 각자 자기만 갖고 있는 값
- INNER JOIN은 A,B 둘 다 값이 있는것
- A CROSS JOIN B
- 카테시안 곱(CARTESIAN PRODUCT)
- A X B 라서 CROSS다.
- A가 4개고 B가 3개면 결과는 12개가 나온다.
- JOIN 조건이 없는 조인이다.
- NON EQUAL JOIN
- 조인할 떄 =을 써서 하는게 EQUAL JOIN
- 등가 조인이 아닌 경우 CROSS 조인 이후에 해당 조건을 적용한다고 생각
- 하나 하나 전수 검사를 하기 때문이다.
- OUTER JOIN
- Outer Join을 사용하는 경우, 모든 조건에 (+)연산자를 사용해야 한다.
- (+)의 의미는 (+)이 붙으면 조건을 만족하지 않아도 통과시키고 값은 NULL로 처리
- A.V1(+) = B.V1 했으면 A.V2 = 10 조건이 있는 경우 A.V2(+) = 10로 써줘야 의도한대로 결과가 나온다.
- 사실 이렇게 하지 말고 A를 서브쿼리로 만들고 조건을 그안에 집어넣으면 고민할 필요 없다.
반응형