programing

Old Style Oracle Outer Join 구문 - 왼쪽 Outer Join에서 등호의 오른쪽에 (+)를 찾는 이유는 무엇입니까?

goodsources 2023. 7. 25. 20:54
반응형

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 JOINANSI 표준의 일부가 되었고, 독점 연산자는 일반적으로 행이 "누락"된 테이블에 적용되었습니다.또한 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

반응형