self join 제가 이해한 게 맞는지 확인받고 싶어요!!
224
작성한 질문수 4
두 가지 확실치 않은 부분이 있어 질문드립니다
우선 제가 쓴 코드를 첨부합니다 (결과는 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을 사용하시는게 맞을 것 같아요. 하지만 데이터 크기가 아주 큰 규모가 아니라면 크게 체감할만한 속도 차이는 아닐겁니다 :)
리트코드 1280. Students and Examinations
0
75
3
16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문
0
89
2
African Cities 문제관련 질문
0
54
1
SQL 코딩테스트 질문
0
206
1
HACKER RANK에서 문제찾기
0
97
2
강의 자료 다운로드
0
90
2
Asian population 문제가 없어요
0
77
2
INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'
0
68
2
별칭 관련해서 질문 있습니다.
0
79
2
rising temperature 문제 질문
0
98
2
해커랭크 TOP EARNERS 문제 질문
0
99
1
ON 뒤에 질문
0
95
2
INNER JOIN 질문. 강의와 결과값이 다릅니다.
0
196
3
END, 뒤에 * 붙이면 에러가 뜹니다
1
204
2
CustomerID가 중복되서 나타나요
0
234
3
별칭이 전체 테이블을 못 불러와요.
0
142
2
CASE WHEN 쿼리 오류 문의
1
325
3
CASE문제풀이 질문
0
125
1
Customers Who Never Order 풀다가 Alias관련 질문사항
0
137
1
Average Population 질문
0
130
1
Revising Aggregations - The Count Function 질문
0
104
1
Average Population of Each Continent 에대해서 질문
0
193
3
w3schools 에서 쿼리 작성 질문
0
159
1
INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?
0
329
1





