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번문제 질문드립니다.

179

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도 실행이 안됩니다.

0

10

1

코드를 첨부해야하는 이유가 있나요?

0

20

2

간단한 오타 제보입니다.

0

19

1

큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.

0

34

2

실제 FK제약조건을 설정하지 않는이유

0

35

2

Free Edition 실습 영상은 아직 업데이트전인가요?

0

22

1

상품 정보 크롤링

0

29

2

강의에 적용한 스크립트를 받아 볼수 있을까요?

0

40

2

실습소실행안되요

0

39

1

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

0

367

1

JOIN만 사용 vs 서브쿼리 사용

0

551

1

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

0

268

1

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

0

379

1

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

0

445

1

상품#11 문제

0

335

1

RIGHT 조인이 싫다면 ??!!

0

311

1

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

0

235

1

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

0

430

1

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

0

398

1

훈련 1번 결과가 달라요

0

237

1

뻥튀기 문제

0

210

1

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

0

214

1

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

0

260

1

훈련 2번째 문제 질문

0

320

1