[SQL 4-4] Complex SQL joins
안녕하세요^^
오늘은 self-join(reflexive join)에 대해 알아보도록 하겠습니다.
Self-join 또는 reflexive join의 경우, 하나의 테이블을 join하는 것을 의미합니다.
이러한 경우, table alias를 반드시 사용해야 합니다.
예를들어, 영업부에서 모든 employee의 이름과 정보, 그의 직속상사의 이름과 정보를 report하고자 합니다.
즉, 위와 같은 결과를 얻고자 하는 상황을 생각해 봅시다.
Employee의 이름과 직속상사의 이름을 얻기 위해서, addresses 테이블을 두 번 읽어야 합니다.
첫 번째 단계로, employee의 id와 이름을 가져옵니다.
두 번째 단계로, 가져온 employee의 id를 기준으로 직속상관의 id를 가져옵니다.
세 번째 단계로, 직속상관의 id를 기준으로 직속상관의 이름을 가져옵니다.
같은 테이블을 두 번 읽기 위해서는, FROM절에 두 번 기록되어야 하는데, 두 테이블을 구분할 수 있는 table alias가 필요합니다.
즉, table alias를 사용하여 아래와 같은 쿼리를 작성하면 원하는 결과를 얻을 수 있습니다.
이상으로 proc sql문장의 self join에 대해 알아보았습니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.