강의

멘토링

커뮤니티

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

wjhwang님의 프로필 이미지
wjhwang

작성한 질문수

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

4번 문제 풀이

JOIN된 테이블의 명칭이 헷갈립니다.

작성

·

307

0

SELECT DISTINCT BST.N , CASE WHEN BST.P IS NULL THEN 'Root' WHEN BST2.N IS NULL THEN 'Leaf' ELSE 'Inner' END FROM BST LEFT JOIN BST AS BST2 ON BST.N = BST2.P ORDER BY BST.N
 
 
선생님이 말씀하신대로 이런 쿼리를 짰는데요.
여기서, join된 테이블의 명칭은 BST인가요? BST2인가요? 아니면 테이블의 이름은 특별히 없는건가요?
혹시 없다면, 정의하고싶다면 어떻게 정의하면 될까요?

답변 1

0

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

이 문제에는 하나의 테이블만 주어졌고, 문제 첫 줄에 이 테이블의 이름이 BST라는 설명이 적혀 있습니다. 

저희 풀이에서는 이 BST 테이블을 두 번 사용합니다. 똑같이 생긴 테이블을 서로 조인하는 방식으로요. 

BST 테이블(1)에 BST 테이블(2)을 LEFT JOIN 하는데, 서로 이름이 같으면 헷갈릴 뿐만 아니라 쿼리의 작동에도 문제가 있기 때문에 (2)에 BST2라는 이름을 임시로 붙여준 것입니다.

만약 다른 이름으로 정의하고 싶다면 AS(알리아스)에 다른 이름을 써 주시면 됩니다.
아래 예시는 첫번째 BST에 a, 두번째 BST에 b라는 별명을 붙인 쿼리입니다. 

FROM BST AS a             
    LEFT JOIN BST AS b

 

wjhwang님의 프로필 이미지
wjhwang

작성한 질문수

질문하기