union할때 조인을 내부에서? 밖에서? 0 7 667

by 초초 [2019.08.29 15:51:47]


방법1 - union 외부에서

select
  a.*,
  (selec name from table_c where a = a.a) name
from (
  select a, b, c from table_a
  union all
  select a, b, c from table_b
) a

 

방법2 - union 내부에서

select
  a.*
from (
  select a, b, c
         (selec name from table_c where a = a.a) name
  from table_a a
  union all
  select a, b, c
         (selec name from table_c where a = b.a) name
  from table_b b
) w

 

안녕하세요

위 쿼리 처럼 union 내에서 조인하는것과 외부에서 조인하는것의 차이가 궁금합니다~

그리고 위 두개의 차이를 확인하는 방법은 단순 초 확인밖에 없을까요?!

by 소주쵝오 [2019.08.29 15:58:58]

실행계획을 확인해보세요~


by 생각 [2019.08.29 16:13:45]

일반 조인과 서브쿼리의 개념을 알고 계셔야 할 것 같습니다. 윗분 말씀대로 실행계획을 살펴보셔야 해요.


by 초초 [2019.08.29 16:18:23]

실행계획요?ㅠ

일반 조인과 서브쿼리 개념은 책보면 알 수 있을까요?


by 우리집아찌 [2019.08.29 16:40:22]

두개의 차이보다 서브쿼리를 outer join으로 바꿔주는게 성능이 향상될겁니다.


by 초초 [2019.08.29 17:38:10]

그런데.. 결과가 count를 가져오는건데 outer join을 하면 group by 를 사용해야하는것 아닌가요~?


by 우리집아찌 [2019.08.29 17:43:35]

count를 가져오면은 서브쿼리를 불필요해보입니다.


by 초초 [2019.08.29 17:15:16]

http://www.gurubee.net/lecture/2722

위 글 확인해보겠습니다 ㅎㅎ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입