오라클 조인 쿼리 예제


ANSI가 아닌 조인 구문은 역사적으로 오라클에서 조인을 수행하는 방식이었으며 오늘날에도 여전히 매우 인기가 있습니다. 조인할 테이블은 FROM 절에 나열되고 조인 조건은 WHERE 절의 조건자로 정의됩니다. 당신이 그것을 좋아하지 않는 경우에도, 당신은 여전히 그것을 사용하는 코드가 많이 있기 때문에 익숙해해야합니다. 구문에 익숙하지 않은 경우 기존 코드를 버그 수정하는 데 어려움을 겪을 것이며 인터넷의 일부 예제는 다소 신비하게 보일 것입니다. 쿼리는 orders 테이블의 각 행을 order_items 테이블의 행과 비교합니다. 두 테이블의 행이 order_id 열에 동일한 값을 가지면 쿼리는 두 테이블의 행의 열 값을 결과 행으로 결합하고 결과 집합에 포함합니다. 내부 조인은 조인 조건을 충족하는 테이블의 행을 반환하는 조인입니다. 조인 조건을 포함하는 WHERE 절에는 하나의 테이블의 열을 참조하는 다른 조건도 포함될 수 있습니다. 이러한 조건은 join 쿼리에서 반환되는 행을 더 제한할 수 있습니다. FULL [외부] JOIN은 조인의 왼쪽과 오른쪽에 있는 테이블의 모든 행을 결합합니다. 종래의 매치가 있는 경우 는 이루어진다. 어느 한쪽에 누락된 데이터가 있으면 행을 버리지 않고 NUL로 대체됩니다. 두 테이블 사이의 내부 또는 외부 조인을 지정합니다.

명시적 조인 절이 없습니다. 대신 두 테이블의 공통 열을 사용하여 암시적으로 만들어집니다. 친애하는 감사합니다. 그것의 아주 좋은 . 나는 지금 모든 것을 취소 가입에 대한 혼란이있다. 흥미롭게도 ANSI FULL OUTER JOIN을 실행할 때 Oracle 최적화 프로그램은 ANSI가 아닌 조인에 해당하므로 성능이 향상되지 않습니다. 그것은 눈에 그냥 쉽게. 실용성에서 언급 한 이 두 가지 사이에 차이가 없습니다, 그러나 사실에 의해 에퀴 조인은 오라클 독점 조인에 속하는 (8i 이전) 내부 조인은 ANSI SQL에 속하는 반면: 1999 조인 마지막으로 조인, 테이블의 이 재정렬 때문에 + 연산자를 사용할 때 조건부 면은 위의 것이 RIGHT OUTER JOIN의 약어라는 것을 깨닫는 것이 중요합니다. 즉, 이 쿼리 스니펫: 따라서 전체 쿼리 및 결과 집합은 사소한 변경을 제외하고 INNER JOIN과 거의 동일하게 보입니다: FROM 절에서 가능한 TableExpressions 중 하나인 JOIN 연산은 두 개 사이에서 조인을 수행합니다. 테이블. („WHERE t1.col1 = t2.col2″와 같은 WHERE 절에서 명시적 같음 테스트를 사용하여 두 테이블 간에 조인을 수행할 수도 있습니다.) 왜 어떤 사람이 크로스 조인을 사용합니까? 데이터 출력은 의미가 없습니다. ANSI 외측 조인 구문은 테이블 순서에 종속되지 않으므로 오른쪽 또는 왼쪽 외부 조인에 대한 실제 개념이 없으며 외부 조인만 있습니다.

CROSS APPLY 및 OUTER APPLY 조인은 오라클에서 사용할 수 있지만 오라클 12c 이후의 응용 프로그램 코드에서만 사용할 수 있도록 지원되므로 한동안 응용 프로그램 코드에서 볼 수 없습니다. 단 하나의 단어, WOWI 조인은 벤 다이어그램을 사용하여 설명하는 몇 가지를 보았다,가능한 경우 다음하시기 바랍니다 … 자체 조인은 테이블이 자체와 조인되는 조인입니다. 예를 들어 직원과 관리자(직원)에 대한 세부 정보가 필요한 경우입니다. 명시적 조인 절이 있는 두 테이블 간의 조인을 지정합니다. 초보자의 경우, 내 개인적인 의견은 ANSI 조인 구문에 초점을 맞추어야하지만 비 ANSI와 동등한 것을 알고 있어야합니다. 이 문서에서는 각 예제에 대한 ANSI 및 비 ANSI 구문을 보여 드리겠습니다. ANSI 조인 구문을 사용하면 외부 조인 테이블의 열에 대한 필터가 WHERE 절에 배치되지 않고 조인 자체에 포함됩니다.