Oracle

Self alias and Outer join

청춘고양이 2024. 6. 11. 15:01
반응형
SELECT a.id, b.F_id, c.name 
FROM a, b, a c 
WHERE a.id = b.id 
  AND b.F_id = c.id(+);

이 패턴을 이용해 이름이 포함된 정보를 가진 테이블 a를 alias 해 다시 이용해서 값을 가지고 온다. 이 값은 outer join으로 가져 오기 때문에 매칭되는 값이 없다면 null을 표시 

<최신 표현>

SELECT a.id, b.F_id, c.name 
FROM a
JOIN b ON a.id = b.id
LEFT JOIN a c ON b.F_id = c.id;

 

 

1. 데이터 연관성 표현

이 패턴을 사용하면 동일한 테이블 내에서 서로 다른 역할을 하는 데이터를 명확하게 구분하고 조인할 수 있습니다. 예를 들어, 직원 테이블에서 직원과 그 직원의 매니저를 연관시킬 때 유용합니다.

SELECT e.id AS employee_id, e.name AS employee_name, m.name AS manager_name
FROM employees e
LEFT JOIN employees m ON e.manager_id = m.id;

2. 데이터 무결성 유지

외부 조인을 사용하면 일치하지 않는 데이터에 대해 NULL 값을 반환하여 데이터 무결성을 유지할 수 있습니다. 이는 특히 선택적 관계가 있는 데이터를 다룰 때 유용합니다.

3. 명확한 읽기 및 유지보수 용이성

SQL의 최신 문법인 JOIN 구문을 사용하면 쿼리의 의도가 명확해지고 가독성이 높아집니다. 이는 쿼리를 작성하고 유지보수하는 데 도움이 됩니다.

SELECT a.id, b.F_id, c.name 
FROM a
JOIN b ON a.id = b.id
LEFT JOIN a c ON b.F_id = c.id;

4. 복잡한 데이터 구조의 처리

이 패턴은 복잡한 데이터 구조를 처리할 때 유용합니다. 예를 들어, 계층적 데이터 구조에서 부모-자식 관계를 표현할 때 유용합니다.

SELECT child.id AS child_id, parent.id AS parent_id, parent.name AS parent_name
FROM organization child
LEFT JOIN organization parent ON child.parent_id = parent.id;

5. 성능 최적화

외부 조인을 사용하여 필요한 데이터만 가져오므로 불필요한 데이터 접근을 줄일 수 있습니다. 이는 성능 최적화에 도움이 될 수 있습니다.

6. 데이터 누락 방지

외부 조인을 사용하면 조인 조건에 맞지 않는 데이터를 포함할 수 있어 데이터 누락을 방지할 수 있습니다. 이는 보고서 작성이나 데이터 분석 시 중요한 역할을 합니다.

7. 유연한 데이터 모델링

테이블을 별칭하여 조인하는 패턴은 유연한 데이터 모델링을 가능하게 합니다. 동일한 테이블을 여러 번 사용하여 다양한 관계를 표현할 수 있습니다.

 

반응형