2 정답
SELECT b.dept_name, a.emp_no, CONCAT(c.first_name, ' ', c.last_name) emp_name,
a.from_date ,a.to_date
FROM dept_manager a
RIGHT JOIN departments b
ON a.dept_no = b.dept_no
LEFT JOIN employees c
ON a.emp_no = c.emp_no
WHERE SYSDATE() BETWEEN IFNULL(a.from_date, SYSDATE())
AND IFNULL(a.to_date, SYSDATE());
실행결과
해설 관리자 이름을 가져오려면 employees 테이블과 조인해야 합니다. 그런데 IT 부서는 할당된 관리자가 없으므로 SELECT 절의 a.emp_no 칼럼이 반환하는 값은 NULL입니다. 따라서 employees 테이블과 외부 조인을 해야 합니다. 이때 dept_manager 테이블에 데이터가 없으므로 LEFT 조인을 사용합니다. 여기서도 관리자 이름은 CONCAT() 함수로 이름과 성을 연결해 조회했습니다.