inflearn logo
강의

Course

Instructor

[A hundred words are not as good as seeing once] Advanced SQL for data analysis

Solving LeetCode problems with unusual join conditions + performing self-joins with two or more tables

리트코드 Consecutive Numbers 질문드립니다!

185

mulju

27 asked

1

SELECT L.Id , L.num, L1.num

FROM Logs L inner JOIN LOGS L1

ON L.Id = L1.Id+1

------------------------------------

SELECT L.Id , L.num, L1.num

FROM Logs L inner JOIN LOGS L1

ON L.Id+1 = L1.Id

------------------------------------

비슷한 문제가 나올때마다 너무 헷갈리네요.... 두 쿼리의 차이점은 JOIN의 ON절에 사용하는 조인조건을 어떤테이블에 적용해야 하느냐 입니다.

ID와 ID+1한 것이 같다고 쓴 부분에 대해 생각해보면
두 경우 다 ID가 2부터 출력되어야 하는것 아닌가요?

값이 왜 다르게 나오는지 모르겠습니다. 어떻게 생각하면 좀 쉬울까요?

sql

Answer 1

0

sdatarian

안녕하세요 함문주님, 답변 드립니다.

말씀해주신 것처럼 두 쿼리는 +1을 어느 테이블의 Id에 했는지만 다르고,
첫번째 쿼리는 Id가 2부터, 두번째 쿼리는 Id가 1부터 출력됩니다.

아시다시피 JOIN 한 결과에 따라 SELECT 절에 있는 컬럼들이 출력됩니다.
첫번째 쿼리는 L1의 Id에 +1을 하여 L의 Id와 JOIN하고, L의 Id를 출력합니다.
반면 두번째 쿼리는 이와 반대로 L의 Id에 +1을 하여 L1의 Id와 JOIN했지만 똑같이 L의 Id를 출력합니다.
혹시 문제점을 아시겠나요?

두번째 쿼리에서 Id가 2부터 출력되게 하려면 L.Id가 아닌  L1.Id를 출력해야 합니다.
L.Id +1 이 L1.Id와 같으므로 L.Id가 1일때 L2.Id 는 2, L.Id가 2일때 L2.Id는 3이 출력됩니다.
따라서 지금처럼 L.Id를 출력하면 값이 1부터 나오게되고, L1.Id를 출력해야 원하시는 대로 2부터 결과가 나옵니다.

답변이 도움이 되셨길 바랍니다 :)

순위 함수 연습 문제 - 스테디셀러 작가 찾기

0

85

1

문제 내용이 잘못된 것 같습니다.

0

58

2

서브쿼리 질문

0

59

2

[수업질문] 서브쿼리 > null데이터 avg사용 주의

0

72

1

서브쿼리는 언제 작성하는건가요?

0

68

1

안녕하세요 질문드립니다.

0

66

2

Top Earners 문제관련 질문

0

96

2

고급반 cheetsheet

0

147

2

196. Delete Duplicate Emails 좋은 코드 질문

0

140

1

a.id = 1과 b.id=1이 없어도 되는 이유

0

125

0

강의 플랫폼

0

198

3

리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요

0

205

2

ERD 읽는법에 추가 질문 있어요

0

249

1

lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답

0

355

2

사용자정의함수

0

230

1

이 문제 inner join이 이해가 안됩니다.

0

295

1

평균 함수 사용할 때 주의점과 해결법

0

259

1

196. subquery로 풀 때, 궁금한 점

0

382

2

쿼리성능 질문드립니다.

0

313

1

리트코드 highest department salary 문제

0

257

2

The report 문제 order by부분 질문

0

269

2

리트코드 서브쿼리 문제 질문

0

420

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

235

1

서브쿼리의 활용사례 및 조인관련질문

0

282

1