• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

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

22.03.02 19:35 작성 조회수 203

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

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

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

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

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

FROM BST AS a             
    LEFT JOIN BST AS b