셀프조인이란
셀프 조인은 데이터베이스에서 동일한 테이블을 사용하여 조인을 수행하는 작업입니다. 즉, 하나의 테이블 내에서 행들을 비교하고 결합하는 것을 말합니다. 이를 위해 테이블에는 적어도 두 개의 별칭(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 값이 표시됩니다. 이와 같이 셀프 조인을 사용하여 동일한 테이블 내의 행들을 비교하고 관계를 파악할 수 있습니다.
'CODE > CodeKnowledge' 카테고리의 다른 글
[SQL] mybatis에서 int와 integer의 차이 (null를 오류로 반환하지 않는 것은?) (0) | 2023.07.16 |
---|---|
[TIP] jar안에 class파일 미리보는 법 (매우 간단함) (0) | 2023.07.15 |
[국비과제] 자바스크립트 이용 회원가입 형식 만들기 (0) | 2023.07.12 |
[스프링] 관리자 페이지 만들기 1 (0) | 2023.07.11 |
파이어베이스와 스프링부트를 이용하여 웹사이트 만들기 ② (0) | 2023.07.09 |
댓글