반응형
Old Style Oracle Outer Join 구문 - 왼쪽 Outer Join에서 등호의 오른쪽에 (+)를 찾는 이유는 무엇입니까?
저는 항상 새로운 사람들에게 오래된 스타일의 오라클 외부 결합 구문을 기억하는 쉬운 방법은
(+) 기호는 당신이 생각하는 위치의 반대쪽에 있습니다.
왼쪽 조인:
select * from foo, bar
where foo.id = bar.id(+)
오른쪽 조인:
select * from foo, bar
where foo.id(+) = bar.id
대학에서 배운 것은 분명하지만, 어느 한쪽에 (+) 기호가 있는 목적은 무엇입니까?단순히 "이쪽 행과 일치하지 않는 다른 쪽 행도"를 나타내는 것입니까? 하지만 너무 복잡해 보입니다.(+)를 선택하여 매치가 되지 않는 쪽에 붙인 목적은 무엇입니까?
그(+)
외부 결합 중인 테이블을 나타냅니다.내가 배운 방법은,(+)
새 행이 누락된 테이블을 나타냄NULL
행을 추가해야 했습니다.
이전에 다양한 데이터베이스가 지원했던 대체 왼쪽 외부 조인 구문을 살펴보면,LEFT OUTER JOIN
ANSI 표준의 일부가 되었고, 독점 연산자는 일반적으로 행이 "누락"된 테이블에 적용되었습니다.또한 DB2는 Oracle과 동일한 방식으로 외부 조인에 대한 연산자를 지원합니다.
쉬운 것은...전체 외부 결합입니다.
p91paul이 말한 바와 같이, 어느 쪽도 엄밀하게는 둘 다 같지 않기 때문에, 제 대답은 충분히 정확하지 않고, 보완적입니다.잘 부탁드립니다!
이상입니다, 여러분
이렇게 하면 집합 A와 다른 집합 B 사이의 완전한 조인 집합을 얻을 수 있습니다.
- 내측(A 및 B에만 공통),
- left(모두 A, 일치된 B 또는 null, 그렇지 않은 경우 Null)
- right(모두 B, 일치된 A 또는 Null, 그렇지 않은 경우 Null)
- 전체(모두 A, 모두 B, 일치 여부)
언급URL : https://stackoverflow.com/questions/22678643/old-style-oracle-outer-join-syntax-why-locate-the-on-the-right-side-of-the
반응형
'programing' 카테고리의 다른 글
이 입력은 파이썬 'any' 기능과 어떻게 작동합니까? (0) | 2023.07.25 |
---|---|
디스크에 쓰지 않고 .zip 파일 다운로드 및 압축 풀기 (0) | 2023.07.25 |
가능한 모든 방법으로 목록을 쌍으로 나누는 방법 (0) | 2023.07.25 |
전원 셸 콘솔에 새 라인 반향 (0) | 2023.07.25 |
@Json이 속성을 무시하는 것({"hibernateLazy")이니셜라이저", "핸들러"}가 가능합니까? (0) | 2023.07.20 |