ER → 릴레이션 → 조회

자기참조 1:N은 새 테이블을 더 만드는 관계가 아니라, 같은 employees 테이블 안에 상사의 id를 저장하는 방식으로 변환된다.

핵심 값
manager_id → employees.id
1 관계

상사 1명 → 부하 N명

같은 사원 엔터티끼리 연결되더라도, 읽는 규칙은 일반적인 1:N과 같다.

김부장
이대리
박사원
한 상사가 여러 부하를 관리하므로, 부하 쪽에 상사를 가리키는 값이 필요하다.
2 변환

자기 자신을 참조하는 외래 키

관계의 중심은 하나의 employees 테이블이다. 각 행은 자신의 상사를 manager_id에 적는다.

employees ( id PK, name, manager_id FK -> employees.id )
최상위 관리자: 더 위 상사가 없으므로 manager_id = NULL
부하 직원: 자신을 관리하는 상사의 id를 저장
3 조회

manager_id로 직속 부하 찾기

먼저 상사의 id를 찾고, 그 id와 같은 manager_id를 가진 행을 고르면 된다.

1
'김부장' 행에서 id를 찾는다.
2
manager_id = 그 id 인 사원들을 선택한다.
SELECT e.name FROM employees e WHERE e.manager_id = ( SELECT id FROM employees WHERE name = '김부장' );