Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

내부조인 외부조인 설명에 대한 질문 #4

Open
readebooks opened this issue May 21, 2023 · 3 comments
Open

내부조인 외부조인 설명에 대한 질문 #4

readebooks opened this issue May 21, 2023 · 3 comments

Comments

@readebooks
Copy link

readebooks commented May 21, 2023

자바 ORM표준 JPA 프로그래밍 ebook 독자인데 질문 있습니다.

책을 읽다 보니 일관성이 없는 부분이 발견되어...어떤게 맞는건 지 알려주시기 바랍니다.

ebook 369 page
10.2.6 JPQL 조인
내부조인
내부 조인인 INNER JOIN을 사용한다. 참고로 INNER는 생략할 수 있다.라고 되어 있고
아래 예제도 설명이 있습니다.
370 page 중간쯤 보면
Member m JOIN m.tema t: 회원이 가지고 있는 연관 필드로 팀과 조인한다. 라고 써서 있습니다.
책 내용은 INNER를 생략한 JOIN만 있으면 내부 조인이라고 이해해야할 사항 입니다.

책을 쭉쭉 신나게 읽다보다보면 황당한 내용이 발견됩니다.
ebook 384 page 중간쯤
단일 값 연관 경로 탐색 설명 중에...
참고로 묵시적 조인은 모두 내부 조인이다. 외부 조인은 명시적으로 JOIN 키워드를 사용해야 한다.
예 SELECT m FROM Member m JOIN m.team t

헐~~~~ 위에서 INNER를 생략한 JOIN은 내부 조인아라고 했는데..
이제 와서 JOIN 키워드를 쓰면 외부 조인이라고요?? ㅠ.ㅠ
독자는 이 부분에서 좌절을 느낍니다. ㅠ.ㅠ
저자님!!! 뭐가 맞는 말인가요?

@holyeye
Copy link
Owner

holyeye commented May 21, 2023

안녕하세요. readebooks님
이 부분을 보면 제가 좀 헷갈리게 설명을 드렸네요. 외부 조인은 당연히 LEFT JOIN을 사용해야 하는 것이 맞습니다.

제가 여기서 LEFT JOIN이라고 할까 사실은 좀 고민을 하다가 이렇게 적었는데요. 그 이유도 설명을 드리겠습니다.
이 문맥에서 "외부 조인은 명시적으로 JOIN 키워드를 사용해야 한다"는 뜻은 단순히 JOIN을 뜻하기 보다는
묵시적인 조인이 아니라 명시적인 JOIN을 사용해야 한다로 이해하시면 됩니다.
(명시적 조인(JOIN)이라는 것이 LEFT, INNER를 포함하는 조인을 명시적으로 해야 한다고 더 큰 개념으로 설명한 것으로 이해하시면 됩니다.)
책 내용 앞 부분에서 조인 부분을 설명하면서 명시적인 조인에 대해서 설명을 드렸는데, 이 부분에서 외부 조인은 LEFT JOIN를 내부 조인은 INNER JOIN 또는 JOIN을 사용해야 한다고 설명을 드렸습니다.

책을 보시는 분들이 조인 부분을 앞에서 충분히 학습하고 지나올 것이라 가정하고, 여기서는 묵시적 vs 명시적에 더 초점을 맞추어서 설명을 드렸습니다.

도움이 되셨길 바래요 :)

@readebooks
Copy link
Author

readebooks commented May 21, 2023

20230521_144611
문맥상....빨강 줄 내용을을 보면 JPQL 예가 외부 조인을 설명하는 것으로 보입니다.
"외부 조인은 명시적으로 JOIN 키워드를 사용해야 한다." 라는 글만 빼면 ... 아래 내용도 다 내부 조인 설명으로 보였을 거에요..

암튼 저자님 ! 정리해 주어서 감사합니다.

@holyeye
Copy link
Owner

holyeye commented May 21, 2023

저도 다시 한번 읽어보니 충분히 오해할 수 있겠네요^^
감사합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants