본문 바로가기
CODE/CodeKnowledge

[SQL] selfjoin 셀프조인에 대해 알아보기 (쓰임, 정의, 방법)

by 솔리닉__ 2023. 7. 13.
반응형

 

셀프조인이란 

 

셀프 조인은 데이터베이스에서 동일한 테이블을 사용하여 조인을 수행하는 작업입니다. 즉, 하나의 테이블 내에서 행들을 비교하고 결합하는 것을 말합니다. 이를 위해 테이블에는 적어도 두 개의 별칭(alias)이 필요합니다.

 

셀프 조인은 테이블 내에서 특정 조건을 충족하는 행을 찾기 위해 사용되며, 자체 참조적인 데이터 구조나 데이터 비교 등 다양한 상황에서 유용합니다.  셀프 조인은 일반적으로 SQL 문을 사용하여 수행되며, JOIN 절을 사용하여 테이블과 테이블을 연결합니다.

 

예를 들어, "Employees"라는 테이블이 있을 때, 이 테이블에서 각 직원의 상사를 찾는다고 가정해보겠습니다. 이 경우, "Employees" 테이블을 자체적으로 조인하여 상사와 직원을 비교할 수 있습니다. 셀프 조인은 데이터베이스 쿼리에서 유용한 도구로 활용되며, 데이터 분석, 계층 구조 탐색, 데이터 비교 등 다양한 작업에 활용될 수 있습니다.

 

 셀프조인을 왜 쓸까? -1 

 

셀프조인을 쓰는 이유는 다양합니다. 같은 열에서 찾고자하는 정보가 있을 때 사용합니다. 혹은 리스트중에서 특정조건에 부합하는 데이터를 추출하기 위해서 가져옵니다. 

 

 

EmployeeID EmployeeName ManagerID
1 John 3
2 Mary 3
3 Alex 4
4 Sarah NULL

위의 Employees 테이블은 각 직원의 EmployeeID, EmployeeName 및 ManagerID를 나타냅니다. ManagerID는 해당 직원의 상사를 나타내며, NULL 값은 최상위 관리자를 의미합니다. 이제 셀프 조인을 사용하여 각 직원과 그들의 상사를 비교해보겠습니다. 

SELECT E.EmployeeName AS Employee, M.EmployeeName AS Manager
FROM Employees E
JOIN Employees M ON E.ManagerID = M.EmployeeID

 

 

Employee Manager
John Alex
Mary Alex
Alex Sarah

Employee Manager John Alex Mary Alex Alex Sarah 위의 결과에서 John과 Mary는 Alex의 직속 부하직원이며, Alex는 Sarah의 직속 부하직원입니다. Sarah는 최상위 관리자이므로 Manager 열에 NULL 값이 표시됩니다. 이와 같이 셀프 조인을 사용하여 동일한 테이블 내의 행들을 비교하고 관계를 파악할 수 있습니다. 

 

 

반응형

댓글