inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 중급 SQL

Self JOIN 리트코드 문제풀이2 + MySQL 날짜 데이터 더하고 빼기

Runtime 질문 입니다

329

­이준호

작성한 질문수 18

1

Self JOIN의 경우 Runtime 이 짧은 순서가

1. LEFT JOIN

2. WHERE

3. INNER JOIN

이렇던데 개인이 편한 문법으로 작성하면 될까요? 아니면 강의처럼

INNER JOIN을 사용하는게 좋은가요?

sql

답변 1

2

한예은

안녕하세요 이준호님! 

예시 문제는 쿼리가 길지 않지만

실제로 쿼리를 작성할 때 길어지고 데이터 양이 많아진다는 것을 고려하면

Runtime이나 쿼리 성능을 위해서는 더 빠른 INNER JOIN을 사용하는 게 좋습니다. 

경우에 따라서 다르겠지면, INNER JOIN을 사용하게 되면

추가적인 JOIN 또는 연산해야하는 data의 수가 줄기 때문에 INNER JOIN을 적절히 사용하는 것이 좋습니다.

또 보통 WHERE 절로 필터링 하는 것과 INNER JOIN은 실행시간이 같습니다. 

그래서 빠른 순위를 적는다면

1. INNER JOIN

2. WHERE 필터링

3. LEFT JOIN 

순서가 됩니다. 

스택오버플로우에 올려진 글도 참고하시면 좋을 거 같아요.

- https://stackoverflow.com/questions/2726657/inner-join-vs-left-join-performance-in-sql-server/2726683

- https://stackoverflow.com/questions/121631/inner-join-vs-where

감사합니다 :) 

리트코드 1280. Students and Examinations

0

77

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

90

2

African Cities 문제관련 질문

0

57

1

SQL 코딩테스트 질문

0

211

1

HACKER RANK에서 문제찾기

0

100

2

강의 자료 다운로드

0

91

2

Asian population 문제가 없어요

0

80

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

69

2

별칭 관련해서 질문 있습니다.

0

81

2

rising temperature 문제 질문

0

99

2

해커랭크 TOP EARNERS 문제 질문

0

102

1

ON 뒤에 질문

0

98

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

201

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

206

2

CustomerID가 중복되서 나타나요

0

236

3

별칭이 전체 테이블을 못 불러와요.

0

145

2

CASE WHEN 쿼리 오류 문의

1

326

3

CASE문제풀이 질문

0

128

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

139

1

Average Population 질문

0

132

1

Revising Aggregations - The Count Function 질문

0

105

1

Average Population of Each Continent 에대해서 질문

0

194

3

w3schools 에서 쿼리 작성 질문

0

160

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

330

1