inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개념은 호옹~, 실습 빡] SQL 데이터 분석, 활용!

특정 사용자의 주문별 결제 금액과, 총 결제 금액은 얼마?

3번문제 질문드립니다.

204

학운학운

작성한 질문수 32

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
안녕하세요.
 
3번문제에서 저는 위에걸로 했고 홍팍님은 강의에서 밑에걸로 하셨습니다.
 
JOIN에서 users.nickname ="홍팍"으로 하는 것과
WHERE에서 저처럼 하는 것은 어떤 차이가 있고 어떻게 하는 것이 더 좋은 방법일까요?
 
감사합니다.
 
 
SELECT
users.nickname AS "주문자명",
orders.id AS "주문번호",
payments.amount AS "결제금액"
FROM
users
JOIN orders ON
orders.user_id = users.id
LEFT JOIN payments ON
payments.order_id = orders.id
WHERE users.nickname = '홍팍'
;
========================
SELECT
users.nickname AS "주문자명",
orders.id AS "주문번호",
payments.amount AS "결제금액"
FROM
users
JOIN orders ON
orders.user_id = users.id
AND users.nickname = '홍팍'
LEFT JOIN payments ON payments.order_id = orders.id
;

sql postgresql DBMS/RDBMS

답변 1

0

홍팍

두 방법 모두 같은 결과를 만드는데요.
여기서 생각해볼 점은
쿼리의 수행 시간과 가독성입니다.

위쪽 저의 코드를 A,
아래쪽 학운님의 코드를 B라 할 때,

A는 개념 전달을 위한
가독성에 초점을 맞춘 쿼리,

B는 퍼포먼스 향상
즉, 수행 시간 최적화를 고려한 쿼리라
볼 수 있겠습니다.

PS.
두 쿼리의 실제 속도는
DBMS의 쿼리 최적화에 따라
다를 수도, 같을 수도 있습니다.

마스터패스...

0

12

1

[과제] 연습문제 쿼리 작성했습니다!

0

8

1

62번 영상 화면의 글씨가 또렷하지 않아요

0

16

1

실습소 페이지

0

14

2

57번

0

27

1

안녕하세요. 요약집 어디서 볼 수 있을까요?

0

27

1

64비트 다운로드 링크

0

26

2

리뷰

0

37

2

3번 문제 질문!

0

36

2

JOIN, 서브쿼리 결과 정렬 질문

0

401

1

JOIN만 사용 vs 서브쿼리 사용

0

582

1

cafe 테이블을 언제 만들었나요..?

0

287

1

과목별 평균 시험절수 얼마? 서브쿼리 or JOIN ?

0

406

1

홍팍 선생님 질문입니다! sql!

0

475

1

상품#11 문제

0

364

1

RIGHT 조인이 싫다면 ??!!

0

330

1

1:42 PHOTOS 테이블 질문입니다 ㅎㅎ

0

255

1

퀴즈 답 혹시 틀린게 있을까요 ...? [ 홍빡님한테도 피드백 받고 싶고..]

0

448

1

안녕하세요. pgadmin 설치 error 문의드립니다.

0

434

1

훈련 1번 결과가 달라요

0

261

1

뻥튀기 문제

0

239

1

훈련4번과 훈련5번문 무슨 차이인가요?

0

242

1

훈련의 정답은 어디서 볼 수 있나요?

0

291

1

훈련 2번째 문제 질문

0

341

1