BookmarkSubscribeRSS Feed

[SQL 4-4] Complex SQL joins

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 114

[SQL 4-4] Complex SQL joins

 

안녕하세요^^

오늘은 self-join(reflexive join)에 대해 알아보도록 하겠습니다.

​Self-join 또는 reflexive join의 경우, 하나의 테이블을 join하는 것을 의미합니다.

이러한 경우, table alias를 반드시 사용해야 합니다.

​예를들어, 영업부에서 모든 employee의 이름과 정보, 그의 직속상사의 이름과 정보를 report하고자 합니다.

 

SE22016122113570270.jpg

 

즉, 위와 같은 결과를 얻고자 하는 상황을 생각해 봅시다.

​Employee의 이름과 직속상사의 이름을 얻기 위해서, addresses 테이블을 두 번 읽어야 합니다.

첫 번째 단계로, employee의 id와 이름을 가져옵니다.

 

SE22016122113573770.jpg

 

 

 

 

 

두 번째 단계로, 가져온 employee id를 기준으로 직속상관의 id를 가져옵니다.

 

SE22016122113580270.jpg

 

 

 

 

 

 

세 번째 단계로, 직속상관의 id를 기준으로 직속상관의 이름을 가져옵니다.

SE22016122113582870.jpg

 

 

같은 테이블을 두 번 읽기 위해서는, FROM절에 두 번 기록되어야 하는데두 테이블을 구분할 수 있는 table alias가 필요합니다.

 

 

SE22016122113590670.jpg

 

 

​즉, table alias를 사용하여 아래와 같은 쿼리를 작성하면 원하는 결과를 얻을 수 있습니다.

 

SE22016122113592770.jpg

 

SE22016122113593570.jpg

 

 

 

 

 

 

이상으로 proc sql문장의 self join에 대해 알아보았습니다.

Version history
Last update:
‎06-17-2020 12:37 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

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.


Register now!

Article Labels
Article Tags