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를 가진 행을 고르면 된다.
2
manager_id = 그 id 인 사원들을 선택한다.
SELECT e.name
FROM employees e
WHERE e.manager_id = (
SELECT id
FROM employees
WHERE name = '김부장'
);