sourcecode

풀 아우터 조인트를 사용하기에 좋은 상황은 언제입니까?

codebag 2023. 6. 22. 21:50
반응형

풀 아우터 조인트를 사용하기에 좋은 상황은 언제입니까?

저는 항상 하나를 사용하는 것이 권장되지 않습니다만, 그것이 가장 좋은 방법일 때의 상황이 있습니까?

드문 일이지만, 저는 그것을 사용하는 경우가 몇 가지 있습니다.일반적으로 양쪽에 결합하려는 데이터가 있는 예외 보고서나 ETL 또는 기타 매우 특이한 상황에서 사용됩니다.
은 대은다사것은는용하를 입니다.INNER JOIN,aLEFT JOIN (오른측포함면쪽포)함)IS NULL및 a ) 및aRIGHT JOIN으로)IS NULL) 및 을 수행합니다.UNION개별 조인을 보다 명확하게 사용자 지정할 수 있으므로 이 접근 방식이 더 나을 수 있습니다(그리고 파생 열을 추가하여 어느 쪽이 발견되었는지 또는 양쪽에서 발견되었는지, 어느 쪽이 이길 것인지를 나타냅니다).

저는 위키피디아 페이지가 예시를 제공한다는 것을 알게 되었습니다.

예를 들어, 부서에 있는 각 직원과 직원이 있는 각 부서를 볼 수 있지만 부서에 속하지 않은 각 직원과 직원이 없는 각 부서도 볼 수 있습니다.

제가 외부에서 완전하게 결합할 필요는 없었습니다...

두 테이블 모두에서 일치하지 않는 고립된 데이터를 찾을 때 전체 외부 조인을 사용했으며 일치하는 것뿐만 아니라 모든 결과 세트를 원했습니다.

바로 오늘 저는 Full Outer Join을 사용해야 했습니다.두 테이블을 비교하는 상황에서 유용합니다.예를 들어, 비교한 두 테이블은 서로 다른 시스템에서 가져온 것이므로 다음 정보를 얻고자 했습니다.

  1. 테이블 A에 테이블 B에 없는 행이 있습니다.
  2. 테이블 B에 테이블 A에 없는 행이 있습니다.
  3. 테이블 A 또는 테이블 B에서 중복됨
  4. 일치하는 행의 경우 값이 서로 다른지 여부(예:테이블 A와 테이블 B는 모두 Acct#12345, LoanID abc123을 가지고 있지만 이자율 또는 대출 금액이 다릅니다.

또한 SELECT 문에 CASE 문을 사용하여 이 행에 플래그를 표시하는 이유를 '주석'하는 추가 필드를 만들었습니다.예:이자율이 일치하지 않습니다 / A 시스템 등에 Act가 존재하지 않습니다.

그런 다음 보기로 저장했습니다.이제 저장 프로시저에서 CASE 문(예: 이자율이 일치하지 않는 모든 레코드)을 사용하여 만든 '댓글' 필드를 사용하여 보고서를 생성하여 사용자에게 데이터 수정/입력을 위해 보내거나 특정 모집단을 끌어오는 데 이 보기를 사용할 수 있습니다.

예를 보고 싶으면 저에게 알려주세요.

제가 사용한 적이 드문 경우는 제가 테스트하고 있는 SQL에 사용된 초기 INER JOIN에서 데이터가 누락되었다고 생각되는 경우를 대비하여 조인 양쪽에서 NULL을 테스트하는 경우입니다.

고립된 데이터를 찾는 데 유용하지만 프로덕션 코드에서는 거의 사용하지 않습니다."항상 하나를 사용하는 것을 권장하지는 않지만, 실제 환경에서는 내부 및 좌우 외부에 비해 더 자주 최상의 솔루션이라고 생각합니다.

내가사드시대에문던용했에시▁used를 사용했습니다.Full Outer Join서로 다른 데이터베이스의 두 고객 테이블을 비교하여 각 테이블에서 중복 항목을 찾거나 두 테이블 구조를 비교하거나, 한 테이블에서 다른 테이블과 비교하여 null 값을 찾거나, 한 테이블에서 다른 테이블과 비교하여 누락된 정보를 찾는 등의 데이터 분석 및 비교 목적을 달성했습니다.

당신이 재고와 공급업체 간의 연결이 누락된 미스터리한 사건을 수사하는 형사라고 상상해 보십시오.인벤토리 데이터베이스에는 제품 목록이 있고 공급업체 데이터베이스에는 공급업체 목록이 있습니다.사례를 분석하고 누락된 링크를 찾기 위해 제품 코드로 알려진 비밀 코드를 사용하여 "전체 외부 조인" 작업을 수행하기로 결정합니다.이 강력한 기술은 두 데이터베이스를 통합하여 정보의 보물창고를 보여줍니다!갑자기 눈앞에 숨겨진 제품은 충성도가 높은 공급업체와 전용 제품이 없는 제품을 발견하게 됩니다.이러한 정보를 통해 두 표의 차이와 누락된 데이터를 집중적으로 확인할 수 있으므로 사례를 해결하고 인벤토리 왕국에서 누락된 연결을 복원할 수 있습니다.

예를 들어, 두 개의 표, 즉 고객 데이터가 들어 있는 표와 주문 데이터가 들어 있는 표가 있다고 가정합니다.전체 외부 조인을 사용하면 일부 고객이 주문이 없거나 해당 고객이 없는 경우에도 모든 고객과 모든 주문을 볼 수 있습니다.이렇게 하면 데이터의 공백을 식별하고 모든 관련 정보가 결과 집합에 포함되도록 할 수 있습니다.

전체 외부 조인은 두 테이블의 모든 행을 포함하므로 큰 결과 집합을 생성할 수 있습니다.이렇게 하면 성능 면에서 비효율적일 수 있으므로 두 테이블의 모든 행을 포함해야 할 경우에만 전체 외부 조인을 사용하는 것이 좋습니다.

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

이렇게 하면 table1과 table2의 모든 행이 반환되고 양쪽에서 누락된 일치 항목에 대한 NULL 값이 채워집니다.

언급URL : https://stackoverflow.com/questions/2094793/when-is-a-good-situation-to-use-a-full-outer-join

반응형