문제
다음 [직원]과 [프로젝트] 테이블에서 SQL문 결과의 행 수를 쓰시오.
[직원]
| 사번 | 담당PJ |
|---|---|
| A001 | P100 |
| A002 | P200 |
| A003 | NULL |
| A004 | P100 |
[프로젝트]
| PJ코드 | 프로젝트명 |
|---|---|
| P100 | 시스템개발 |
| P300 | 데이터분석 |
SQLSELECT 직원.사번, 프로젝트.프로젝트명 FROM 직원 LEFT JOIN 프로젝트 ON 직원.담당PJ = 프로젝트.PJ코드 WHERE 프로젝트.프로젝트명 IS NOT NULL OR 직원.담당PJ IS NULL;
정답
3
3
해설
LEFT JOIN으로 직원 테이블의 모든 행이 보존됩니다. A001은 P100과 매칭되어 '시스템개발', A002는 P200이지만 프로젝트 테이블에 P200이 없어서 NULL, A003은 담당PJ가 NULL이므로 프로젝트명도 NULL, A004는 P100과 매칭되어 '시스템개발'입니다. WHERE 조건에서 프로젝트명이 NOT NULL이거나 담당PJ가 NULL인 행만 선택하므로, A001(시스템개발), A003(담당PJ NULL), A004(시스템개발) 총 3행이 결과로 나옵니다.