Comunidad Empresarial Dinamiza

 
 
  • No hay categorías

 
No te pierdas...
 

 
Publicado 02/08/2019 por admin en
 
 

self join 예제

SQL 자체 조인은 테이블을 자신과 조인하거나 비교하는 데 사용됩니다. SQL 자체 조인은 열의 값과 동일한 테이블의 다른 열 값을 비교하는 데 사용됩니다. 자체 JOIN은 일반 조인이지만 테이블은 자체와 함께 조인됩니다. 아버지와 어머니에 대한 데이터를 얻기 위해 세 번 (즉, 세 개의 «테이블»또는 별칭)에 자체 조인을 사용해야했습니다. 존 왓슨, 앤 브라운, 제이콥 밀러는 조상을 가리키는 데이터가 없다. 자체 조인은 동일한 테이블의 데이터를 조인합니다. 즉, 테이블을 자체와 조인합니다. 테이블에서 가져온 레코드는 동일한 테이블의 다른 레코드와 일치합니다. 왜 이렇게 하시겠습니까? 값을 동일한 행의 다른 값과 비교해야 할 수 있습니다. 테이블을 자체적으로 조인하고 두 개의 별도 레코드에 있는 것처럼 값을 비교하지 않으면 그렇게 할 수 없습니다.

자체 조인은 내부 조인 또는 왼쪽 조인 절을 사용합니다. self join을 사용하는 쿼리는 동일한 테이블을 참조하므로 테이블 별칭은 쿼리 내의 동일한 테이블에 다른 이름을 할당하는 데 사용됩니다. 자체 조인전용 연산자가 없습니다. 대신 자체 조인은 외부 JOIN 연산자 중 하나인 INNER JOIN 연산자 또는 CROSS JOIN을 사용합니다. 차이점은 단일 테이블이 조인의 왼쪽 테이블과 오른쪽 테이블로 모두 나열된다는 것입니다. SQL 자체 조인은 조직 구조와 같은 한 테이블에 저장된 관련 데이터를 선택하려는 경우에 매우 유용합니다. 예를 들어 누구에게 보고대상을 표시하려면 직원 테이블을 다음 쿼리로 조인할 수 있습니다. 예를 들어 접시를 준비하는 데 필요한 연속 단계를 설명하는 레코드가 있다고 가정합니다. 모든 단계를 단일 테이블에 배치할 수 있습니다. 순서는 동일한 테이블의 이전 레코드와 다음 레코드의 아이디를 가리키는 열을 기반으로 결정됩니다. 우수한 열등한 레코드 접근 방식을 사용하여 저장소 데이터에 대해 위에서 설명한 계층 구조의 예입니다.

이를 통해 데이터를 트리 구조로 표시할 수 있습니다. 관계형 데이터베이스에 대해 계속 알아보면서 트리 구조에 대해 자세히 알아봅니다. 직원 테이블에는 ID, 이름, 성 및 이메일과 같은 직원 정보가 저장됩니다. 또한 직접 관리자를 지정하는 manager_id라는 열이 있습니다. 예를 들어, 미레야는 미레야의 manager_id값이 파비올라이기 때문에 파비올라에게 보고합니다. 자체 조인을 사용하면 테이블을 자체적으로 조인할 수 있습니다. 계층 적 데이터를 쿼리하거나 동일한 테이블 내에서 행을 비교하는 데 유용합니다. 데이터를 쿼리하고 한 행에 있는 두 사람 모두에 대한 정보를 얻으려면 e «테이블»에서 id, first_name 및 last_name 열을 선택하여 직원 데이터를 선택했습니다. 관리자의 데이터는 m «테이블»을 참조하여 선택되었습니다. 직원 레코드에 «e»가 접두사되고 관리자 레코드에 «m»이 접두어 붙어 있습니다.

이제 적절한 조인 조건을 사용했기 때문에 이러한 조인을 할 수 있습니다. 위에 제공된 예제(직원-관리자 관계)는 계층적 데이터가 사용되는 유일한 상황이 아닙니다. 자동차에 대한 자재 명세서도 비슷한 구조를 공유합니다. 각 차량은 엔진, 브레이크 시스템 및 전기 시스템과 같은 여러 구성 요소로 구성됩니다. 이러한 각 구성 요소는 더 작은 부품으로 구성됩니다. 자동차의 전기 시스템은 배터리와 발전기와 같은 구성 요소로 분해될 수 있습니다(더 많은 자동차 부품으로 분해될 수 있음). 즉, 자동차 부품은 계층 적 데이터 그룹을 구성합니다.


admin