인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

가십걸님의 프로필 이미지

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

Self JOIN 리트코드 문제풀이1

ON 뒤에 질문

작성

·

25

0

ON Employee.managerid = Manager.id

이 부분이 이해가 제대로 안됩니다..!!

Employee.id = Manager.managerid

이렇게 작성하면 안되는 이유는 뭔가요??

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 가십걸님.

Self Join에 대한 궁금증을 가지셨군요. Self Join은 같은 테이블 내에서 두 개의 역할을 수행하도록 테이블을 두 번 참조하여 데이터를 조인하는 방식입니다. 서로 다른 두 역할의 데이터를 연결하고자 할 때 자주 사용됩니다.

먼저, ON Employee.managerid = Manager.id라는 조건을 사용하신 부분은 Self Join의 전형적인 패턴입니다. 여기서 EmployeeManager는 사실상 같은 테이블을 두 번 참조하여 각각 다른 역할을 수행하게 됩니다.

잠재적으로 잘못된 이해는 [Employee.id] = Manager.managerid라는 조건에서 발생합니다. 이 조건은 일반적으로 사용하지 않습니다. 왜냐하면 보통 관리자(manager)는 직원(employee)을 감독하게 되므로, 직원의 관리자가 무엇인지 식별하기 위해 managerid가 사용됩니다. Manager.id는 특정 관리자의 고유 식별자이고, Employee.managerid는 이 관리자를 가리키는 외래키 역할을 합니다.

관련하여 유사한 질문을 다룬 게시물에서 자세한 설명을 확인하실 수 있습니다:

이 링크에서 Self Join에 대해 더 깊이 이해하실 수 있을 것입니다. Self Join이 동일한 테이블 안에서 데이터의 관계를 어떻게 사용할 수 있게 하는지에 대한 포인트를 잘 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.