작성
·
193
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을 사용하시는게 맞을 것 같아요. 하지만 데이터 크기가 아주 큰 규모가 아니라면 크게 체감할만한 속도 차이는 아닐겁니다 :)