Inflearn brand logo image

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

지혜님의 프로필 이미지
지혜

작성한 질문수

[2025] SQLD 문제가 어려운 당신을 위한 노랭이 176 문제 풀이

64번 - 적절한 SQL 찾기 (계층형 질의, 외부 조인)

64번 설명에서

작성

·

35

1

  • CONNECT BY PRIOR 부모 = 자식순방향 (부모 → 자식)

  • CONNECT BY 자식 = PRIOR 부모역방향 (자식 → 부모)



    인데 왜 1번해설에서 위는 역방향 아래는 순방향이라고

    해설이되나요?

  • 둘다 역방향으로 보여집니다.

     

답변 3

0

데이터코드랩님의 프로필 이미지
데이터코드랩
지식공유자

안녕하세요. 질문을 잘 못 이해했네요.

64번 문제 제가 확인을 해봤어요. 말씀하신데로, 제가 설명할 때 실수한 게 있었네요.

위 쪽 쿼리는 순방향이 맞고, 아래쪽 쿼리는 역방향이 맞습니다. (강의 자료는 수정해두었습니다)

둘다 역방향으로 보인다고 말씀 하신 것은, 제가 답변 단 아래의 설명을 참고해주세요.

 

감사드립니다.

0

데이터코드랩님의 프로필 이미지
데이터코드랩
지식공유자

안녕하세요. 데이터코드랩입니다.

질문자님께서 둘 다 역방향으로 보인다고 생각하시는 것은 아마도 PRIOR가 붙은 컬럼이 마치 "시작점"이 되는 것처럼 느껴지기 때문일 수 있습니다. 하지만 PRIOR는 단순한 시작점을 의미하기보다는, "연결할 때 기준이 되는 이전 행의 값"을 지칭한다고 이해하는 것이 정확합니다.

 

  • CONNECT BY PRIOR 부모 = 자식 (순방향: 부모 → 자식)

    • 이 구문은 PRIOR가 붙은 부모 컬럼의 값이 현재 로우의 자식 컬럼의 값과 같을 때 연결하라는 의미입니다.

    • 즉, "이전 로우의 부모 값"이 "현재 로우의 자식 값"과 같다는 조건으로 연결되므로, 계층을 따라 내려가는 부모에서 자식으로의 흐름이 만들어집니다.

    • 예를 들어, 직원의 매니저(부모)가 누구인지 찾고, 그 매니저의 부하 직원(자식)을 찾는 식으로 하위 계층을 탐색하는 형태입니다.

  • CONNECT BY 자식 = PRIOR 부모 (역방향: 자식 → 부모)

    • 이 구문은 "현재 로우의 자식 컬럼의 값이 이전 로우(부모)의 부모 컬럼의 값과 같을 때 연결"하라는 의미입니다.

    • 즉, "현재 로우의 자식 값"이 "이전 로우(부모)의 부모 값"과 같다는 조건으로 연결되므로, 계층을 거슬러 올라가는 자식에서 부모로의 흐름이 만들어집니다.

    • 예를 들어, 특정 직원의 상위 매니저(부모)가 누구인지, 그 매니저의 상위 매니저는 누구인지 계속해서 상위 계층을 탐색하는 형태입니다.

       

다시 한 번 설명하자면, CONNECT BY 에서 Prior 가 붙은 것은 이전의 의미입니다. 이전 로우의 부모, 이전 로우의 자식으로 생각하시면 이해하기가 더 쉬울 거예요.

시험이 얼마 안 남았네요. 꼭 합격 하시길 빌게요. 감사합니다. :)

 

0

안녕하세요, 인프런 AI 인턴입니다. 지혜님.

SQL에서 CONNECT BY 절은 계층적 쿼리를 작성할 때 사용되며, PRIOR 키워드를 통해 부모-자식 관계를 탐색할 수 있습니다.

  1. CONNECT BY PRIOR 부모 = 자식순방향 탐색을 의미합니다. 이는 부모에서 자식으로 내려가는 계층 구조를 탐색하는 방식입니다.

  2. CONNECT BY 자식 = PRIOR 부모역방향 탐색을 의미합니다. 이는 자식에서 부모로 올라가는 계층 구조를 탐색하는 방식입니다.

이에 대한 설명은 조금 혼동될 수 있지만, 명확하게 말하자면:
- 순방향 탐색: 부모에서 자식으로 계층 구조를 따라 내려감
- 역방향 탐색: 자식에서 부모로 계층 구조를 따라 올라감

이와 관련하여 추가적인 이해와 시각적 설명이 필요하실 경우, 아래 유사한 질문들을 참고해 보시면 도움이 될 것입니다:

  1. 63번- PRIOR 자식 = 부모 형태 질문: 이 질문에서는 계층 구조와 PRIOR의 사용 방식에 대해 구체적인 해설이 이루어지고 있습니다.

질문 내용의 해설은 혼란스러울 수 있지만, 위 설명을 통해 제대로 이해하시길 바랍니다.

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

지혜님의 프로필 이미지
지혜

작성한 질문수

질문하기