inflearn logo
강의

Course

Instructor

[The concept is easy~, the practice is intense] SQL data analysis, utilization!

What is the payment amount per order and the total payment amount for a specific user?

3번문제 질문드립니다.

185

samgangjumak

32 asked

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

Answer 1

0

hongpark

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

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

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

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

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

vercel실행 - failed to fetch

0

11

1

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

0

22

1

문제 풀이 1번 질문

0

28

1

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

0

52

2

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

0

44

1

함수기반 인덱스

0

29

2

날짜 인덱스관련 질문

0

26

1

복합인덱스 확인법

0

23

0

order_product 까마귀발

0

44

2

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

0

377

1

JOIN만 사용 vs 서브쿼리 사용

0

561

1

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

0

274

1

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

0

390

1

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

0

454

1

상품#11 문제

0

346

1

RIGHT 조인이 싫다면 ??!!

0

312

1

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

0

240

1

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

0

434

1

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

0

408

1

훈련 1번 결과가 달라요

0

242

1

뻥튀기 문제

0

217

1

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

0

221

1

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

0

271

1

훈련 2번째 문제 질문

0

325

1