inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

3번문제 질문드립니다.

185

학운학운

작성한 질문수 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의 쿼리 최적화에 따라
다를 수도, 같을 수도 있습니다.

DB 설계와 JPA 관련 질문입니다

0

19

1

21c 버전으로 해도 무방한가요?

0

28

3

vercel실행 - failed to fetch

0

28

2

드랍 테이블로 지운 ordes에 대해서 질문

0

27

1

문제 풀이 1번 질문

0

31

1

아주 작은 정오표 전달드립니다.

0

59

2

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

51

1

함수기반 인덱스

0

33

2

날짜 인덱스관련 질문

0

27

1

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

0

377

1

JOIN만 사용 vs 서브쿼리 사용

0

562

1

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

0

274

1

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

0

390

1

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

0

458

1

상품#11 문제

0

346

1

RIGHT 조인이 싫다면 ??!!

0

313

1

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

0

241

1

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

0

435

1

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

0

408

1

훈련 1번 결과가 달라요

0

243

1

뻥튀기 문제

0

218

1

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

0

221

1

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

0

272

1

훈련 2번째 문제 질문

0

325

1