다음 결과를 얻기 위해 ( ㉠ )에 들어갈 구문으로 옳은 것은?[부서]… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 3회
다음 결과를 얻기 위해 ( ㉠ )에 들어갈 구문으로 옳은 것은?[부서]
| 부서코드 | 부서명 | 등록일 |
|---|---|---|
| D1 | 영업 | 2026-01-02 |
| D2 | 개발 | 2026-01-02 |
| D3 | 인사 | 2026-02-01 |
[직원]
| 직원번호 | 직원명 | 부서코드 | 등록일 |
|---|---|---|---|
| 201 | 서아 | D1 | 2026-01-02 |
| 202 | 준호 | D2 | 2026-03-05 |
| 203 | 예린 | D1 | 2026-02-01 |
| 204 | 태민 | D3 | 2026-02-01 |
| 205 | 유나 | D2 | 2026-01-02 |
SELECT 직원번호, 부서코드, 부서명 FROM 직원 ( ㉠ ) ORDER BY 직원번호;
[원하는 결과]
| 직원번호 | 부서코드 | 부서명 |
|---|---|---|
| 201 | D1 | 영업 |
| 202 | D2 | 개발 |
| 203 | D1 | 영업 |
| 204 | D3 | 인사 |
| 205 | D2 | 개발 |
1
LEFT JOIN 부서 USING (등록일)
2
JOIN 부서 USING (부서코드)
3
JOIN 부서 ON 직원.부서코드 = 부서.부서코드
4
NATURAL JOIN 부서
해설
두 테이블에는 부서코드와 등록일이 함께 있으므로 부서코드 하나로만 조인하려면 USING (부서코드) 를 써야 하고, USING 열은 접두사 없이 SELECT 할 수 있다.
NATURAL JOIN 은 이름이 같은 열을 모두 조건으로 써 등록일까지 같은 201·204·205 의 3행만 남는다.
- NATURAL JOIN 은 등록일이 다른 202·203 을 빠뜨린다.
- 등록일로 조인하면 부서가 엉뚱하게 짝지어지고 부서코드도 모호해진다.
- ON 절을 쓰면 접두사 없는 부서코드가 모호하다는 오류가 난다.
오류나 개정된 내용이 보이면 알려주세요