답안에서 마지막 줄인 학과명 IS NULL;이 왜 나오게 되었는지 설명좀 부탁드리겠습니다
안녕하세요 길벗수험서 운영팀입니다.
left outer join의 결과를 예측해보시기 바랍니다.
SELECT 학교.학교명, 지역
FROM 학교 LEFT OUTER JOIN 학과 ON 학교.학교명 = 학과.학교명
WHERE 학과명 Is Null;
학교명과 지역을 출력하는데, 학교.학교명 = 학과.학교명(+) 상태입니다.
즉, 학교 테이블에 포함되어있지 않은 학과 테이블의 학교명이 포함된 결과가 출력된다는 말이죠.
이때 해당 학교명은 '지역'이 존재하지 않으므로 해당 학교명의 튜플들은 '지역' 필드가 널로 추가가 됩니다.
때문에 아래 SQL 결과를 보면
SELECT *
FROM 학교 LEFT OUTER JOIN 학과2 ON 학교.학교명 = 학과2.학교명;
(왼쪽 학교명은 학교.학교명, 오른쪽 학교명은 학과.학교명)
이러한 결과가 나옵니다.
위에서 학과명이 NULL인 것을 찾으면 문제의 결과가 출력되게 되죠.
행복한 하루되세요 :)
-
관리자2019-04-02 11:28:08
안녕하세요 길벗수험서 운영팀입니다.
left outer join의 결과를 예측해보시기 바랍니다.
SELECT 학교.학교명, 지역
FROM 학교 LEFT OUTER JOIN 학과 ON 학교.학교명 = 학과.학교명
WHERE 학과명 Is Null;
학교명과 지역을 출력하는데, 학교.학교명 = 학과.학교명(+) 상태입니다.
즉, 학교 테이블에 포함되어있지 않은 학과 테이블의 학교명이 포함된 결과가 출력된다는 말이죠.
이때 해당 학교명은 '지역'이 존재하지 않으므로 해당 학교명의 튜플들은 '지역' 필드가 널로 추가가 됩니다.
때문에 아래 SQL 결과를 보면
SELECT *
FROM 학교 LEFT OUTER JOIN 학과2 ON 학교.학교명 = 학과2.학교명;
(왼쪽 학교명은 학교.학교명, 오른쪽 학교명은 학과.학교명)이러한 결과가 나옵니다.
위에서 학과명이 NULL인 것을 찾으면 문제의 결과가 출력되게 되죠.
행복한 하루되세요 :)