동일한 employees 테이블을 사용했지만 employees A 테이블은 manager_id, employees B 테이블은 employee_id로 조인하여 매니저가 누구인지 이름을 출력했습니다. 동등 조인과 원리는 같지만 테이블을 한 개만 사용한다는 차이점이 있습니다.
자체 조인은 다음과 같은 특징이 있습니다.
■ 자기 자신의 테이블을 이용하여 조인합니다.
■ 같은 테이블을 사용하기 때문에 각기 다른 별칭을 사용함으로써 마치 서로 다른 두 개의 테이블을 조인하는 것처럼 보입니다.
■ 자체 조인을 할 때 테이블은 동일한 열로 구성되어 있기 때문에 조회할 때 반드시 ‘별칭.열 이름’의 형태로 명확하게 구별하여 조회해야 합니다. 그렇지 않으면 오류가 발생합니다.
실무 활용 팁
1 조인을 사용할 때는 테이블에 별칭을 사용합니다. 필수&권장
• 테이블 이름에 별칭을 사용하여 긴 테이블 이름을 축약하여 사용할 수 있습니다.
• 별칭을 사용하면 SQL 문을 간략하게 만들 수 있어 가독성도 높아지고 SQL 문을 효율적으로 작성할 수 있습니다.
• 길게 사용해도 되지만 가급적 짧게 사용하는 것이 좋습니다(필자는 주로 A, B, C, … 순서로 사용).
• SQL 로직이 복잡할 때는 테이블의 별칭에 의미를 부여해서 사용하는 것도 도움이 됩니다.
예 employees → emp, departments → dept
2 테이블의 순서는 가장 중심이 되는 테이블을 앞에 기술합니다. 권장
• FROM 절에 기술되는 테이블의 순서를 가장 중심이 되는 테이블부터 기술하면, 조인할 때 SQL 로직을 확인하기가 수월해집니다.
3 조인하는 테이블이 여러 개라 논리적으로 복잡하게 느껴질 경우, AND 절 단위로 조인을 걸 때마다 결과를 확인하는 방법을 이용하면 정확한 결과를 출력할 수 있습니다.