Left outer join은 왼쪽 튜플들만 추가하여 조인시키는 것 아닌가요?
3쪽에서 분명히 그렇게 이해를 했는데 4쪽 기능사 실기 기출문제를 보니 왼쪽인topic에는 전부 들어가 있어서 헷갈리네요..
모두 겹쳐서 natural join과 마찬가지 인가요? Right join했을때는 어떤 결과가 나오나요?
그리고 SQL문에서 Select *로 나타내주면, 속성은 left right natural join 상관없이 왼/오 튜플을 모두 나타내는지요?
안녕하세요 길벗수험서 운영팀입니다.
left outer join은 기본적으로 왼쪽 테이블은 기본 형태를 그대로 지닌 상태에서 오른쪽 테이블이 기준 속성에 맞춰 삽입되는 형태로 나타납니다. (3쪽의 예제는 이상태에서 표시될 속성을 제한(선배, 성적 제외)한 것이죠.)
기능사 기출문제에서는 topic 테이블을 기준으로 auth_id(기준 속성)에 대응하는 auth 테이블의 튜플이 맞춰 삽입된 형태입니다.
만약 right join을 하게 되면 auth 테이블을 기준으로 topic 테이블의 튜플이 맞춰 들어갈텐데, 이 경우 모든 튜플이 대응 되므로 결국 같은 결과가 나타납니다.
(left join할 때는 topic.auth_id에 맞춰 auth테이블의 튜플이 들어갔지만, right join할 때는 auth.id에 맞춰 topic테이블의 튜플이 들어간다는 것만 달라지죠. 참고로 right join 시 auth.id의 값 1에 대응하는 topic.auth_id의 값 1에 해당하는 3개의 튜플(1, 2, 5번째 튜플)이 모두 삽입됩니다.)
출력 순서는 말씀하신대로 입니다. from에 적힌 테이블이 우선시 되어 먼저 출력됩니다.
행복한 하루되세요 :)
-
관리자2020-07-15 10:43:30
안녕하세요 길벗수험서 운영팀입니다.
left outer join은 기본적으로 왼쪽 테이블은 기본 형태를 그대로 지닌 상태에서 오른쪽 테이블이 기준 속성에 맞춰 삽입되는 형태로 나타납니다. (3쪽의 예제는 이상태에서 표시될 속성을 제한(선배, 성적 제외)한 것이죠.)
기능사 기출문제에서는 topic 테이블을 기준으로 auth_id(기준 속성)에 대응하는 auth 테이블의 튜플이 맞춰 삽입된 형태입니다.
만약 right join을 하게 되면 auth 테이블을 기준으로 topic 테이블의 튜플이 맞춰 들어갈텐데, 이 경우 모든 튜플이 대응 되므로 결국 같은 결과가 나타납니다.
(left join할 때는 topic.auth_id에 맞춰 auth테이블의 튜플이 들어갔지만, right join할 때는 auth.id에 맞춰 topic테이블의 튜플이 들어간다는 것만 달라지죠. 참고로 right join 시 auth.id의 값 1에 대응하는 topic.auth_id의 값 1에 해당하는 3개의 튜플(1, 2, 5번째 튜플)이 모두 삽입됩니다.)
출력 순서는 말씀하신대로 입니다. from에 적힌 테이블이 우선시 되어 먼저 출력됩니다.
행복한 하루되세요 :)