• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

self join 제가 이해한 게 맞는지 확인받고 싶어요!!

20.03.14 22:50 작성 조회수 145

2

두 가지 확실치 않은 부분이 있어 질문드립니다

우선 제가 쓴 코드를 첨부합니다 (결과는 accepted 였습니다)

SELECT em1.name AS Employee

FROM Employee em1

LEFT JOIN Employee em2 ON em1.managerid = em2.id

WHERE em1.salary > em2.salary

1. 제가 강의를 보기 전 self join에 대해 검색하여  다른 사람들의 코드를 참고한 뒤 이러한 코드를 작성하였는데요,

em1과 em2가 이름을 지정해 준 건 알겠는데

as를 써 주지 않아도 괜찮은 건가요?

2. null 값이 있어 left join을 썼는데,  선생님께서는 inner join을 쓰시더라고요

효과적으로 null 값을 제거하기 위해 그러한 것이라고 생각하는데,

만약 제 방식대로 left join을 쓴다면 탐색시간(?)이 더 길어져서 서버를 더 많이 잡아먹는 방식이 될까요? 그러니까, 불필요한 작업을 추가하는건가요 아니면 별 차이가 없을까요?

null값이 있으면 보다 확실한 결과를 얻기 위해 left join을 쓰고 싶은데 만약 이 방식이 불필요하게 시간을 늘리는 것이라면 지양해야 되겠죠?ㅠㅠ

답변 1

답변을 작성해보세요.

0

안녕하세요.

1. 네  AS를 안써주셔도 alias 를 em1과 em2로 지정하실 수 있어요.

2. null 값을 굳이 안 봐도 되는 상황이라면, inner join이 대부분 outer join 보다 빠르기 때문에 inner join을 사용하시는게 맞을 것 같아요. 하지만 데이터 크기가 아주 큰 규모가 아니라면 크게 체감할만한 속도 차이는 아닐겁니다 :)