BookmarkSubscribeRSS Feed

[SQL 4-4] Complex SQL joins

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

[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에 대해 알아보았습니다.

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

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Article Labels
Article Tags