테이블 A에 7k 레코드가 있고 테이블 B에 5 개의 레코드가있는 경우 테이블 A를 드라이버로 갖는 Left Outer Join은 7k 레코드를 제공하고 테이블 B를 드라이버로 갖는 Right Outer Join은 5 개의 레코드를 제공합니다.
그러나 내 이해에 따르면 FULL OUTER JOIN은 7k * 5 레코드를 제공합니다. 항상 그럴까요 아니면 조인 절에 따라 달라 지나요? 이것이 항상 그런 경우 테이블 A와 테이블 B 사이의 데이터를 병합하려면 FULL OUTER JOIN 대신 LEFT OUTER JOIN 결과 UNION ALL을 Right OUTER JOIN 결과와 함께 사용하는 것이 더 나은 옵션이 아닙니다. 내 무감각을 용서하십시오, 나는 매우 피곤합니다. :-)
여기에 표시된 숫자는 이러한 테이블간에 보유 할 수있는 레코드의 상대적인 변화를 제공하며 테이블 B는 실제로 향후 더 많이 증가 할 것입니다.
나는 당신 FULL OUTER JOIN
이 실제로 생각하는 것이 CROSS JOIN
또는 데카르트 조인 연산 이라고 생각 합니다. CROSS JOIN
N * M 레코드를 반환합니다. 여기서 N은 왼쪽 테이블의 레코드 수이고 M은 오른쪽 테이블의 레코드 수입니다.
FULL OUTER JOIN
다릅니다-조합 LEFT JOIN
이며 RIGHT JOIN
단일 작업입니다. 먼저 테이블이 조인되고 조인 작업의 결과 모든 레코드가 반환됩니다.
또한 LEFT JOIN
a와 같이 오른쪽에 일치하지 않는 왼쪽 테이블의 행도 반환되고 NULL
오른쪽 테이블의 열에 대한 열을 표시 하고 a처럼 RIGHT JOIN
오른쪽 테이블의 행은 일치하지 않습니다. 왼쪽에 일치 항목이 반환되고 NULL
왼쪽 테이블의 열에 대한 열이 표시 됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다