다음 SQL 의 실행 결과로 옳은 것은?[계약]계약번호상품명10암보험1… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 10회
다음 SQL 의 실행 결과로 옳은 것은?[계약]
| 계약번호 | 상품명 |
|---|---|
| 10 | 암보험 |
| 11 | 실손 |
| 12 | 운전자 |
| 13 | 치아 |
[청구]
| 청구번호 | 계약번호 | 상태 |
|---|---|---|
| 100 | 10 | 지급 |
| 101 | 11 | 반려 |
| 102 | 11 | 지급 |
| 103 | 12 | 반려 |
SELECT K.계약번호, K.상품명, Q.청구번호
FROM 계약 K LEFT OUTER JOIN 청구 Q
ON K.계약번호 = Q.계약번호
WHERE Q.상태 <> '반려'
ORDER BY K.계약번호, Q.청구번호;1
| 계약번호 | 상품명 | 청구번호 |
|---|---|---|
| 10 | 암보험 | 100 |
| 11 | 실손 | 102 |
| 12 | 운전자 | (null) |
| 13 | 치아 | (null) |
2
| 계약번호 | 상품명 | 청구번호 |
|---|---|---|
| 10 | 암보험 | 100 |
| 11 | 실손 | 101 |
| 11 | 실손 | 102 |
| 13 | 치아 | (null) |
3
| 계약번호 | 상품명 | 청구번호 |
|---|---|---|
| 10 | 암보험 | 100 |
| 11 | 실손 | 102 |
4
| 계약번호 | 상품명 | 청구번호 |
|---|---|---|
| 10 | 암보험 | 100 |
| 11 | 실손 | 102 |
| 13 | 치아 | (null) |
해설
조인 뒤 WHERE 가 적용되므로 반려 청구 101·103 행이 빠지고, 청구가 없어 상태가 NULL 인 치아 행도
NULL <> '반려'가 UNKNOWN 이라 제거되어 2행만 남는다.결국 바깥 조인의 보존 효과가 사라져 INNER 조인과 같아지며, 기준 행을 살리려면 이 조건을 ON 절로 옮겨야 한다.
- 치아 행이 남은 표는 NULL 이
<>조건을 통과한다고 보았다. - 운전자·치아가 NULL 로 남은 표는 조건을 ON 절에 둔 결과다.
- 101 행이 남은 표는 WHERE 조건을 적용하지 않았다.
오류나 개정된 내용이 보이면 알려주세요