-
JoinDB/Postgresql(DB) 2023. 11. 28. 00:11
출저: 홍팍 (https://www.youtube.com/@hongpark)
이 블로그 기록은 개인 공부용 기록입니다.
- INNER JOIN 예시 모음
더보기1. 예시 사진#1에 달린 모든 댓글내용 과 작성자 닉네임을 조회하시오
SELECT
comments.body, -- 댓글 내용
users.nickname -- 작성자 네임
FROM
comments
Join users on -- users를 붙임
users.id = comments.user_id
WHERE
comments.photo_id = 1
;2. 사진#5의 파일명과 사진 게시자 닉네임을 조회하시오.
SELECT
photos.filename, users.nickname
FROM
photos
Join users ON
users.id = photos.user_id
where
photos.id = 5;3. "사진#2" 좋아요한 사용자 "닉네임" 과 대상 사진의 "파일명"
SELECT
users.nickname,
photos.filename
FROM
likes
JOIN users ON
users.id = likes.user_id
JOIN photos ON
photos.id = likes.photo_id
WHERE
photos.id = 2
;- LEFT JOIN 예시 모음(자주쓰임)
: 공통적인 부분 뿐만아니라 왼쪽의 데이터를 모두 가져온다.
더보기1. 모든 사진의 "파일명"을 조회하시오. 게시자가 있다면 "닉네임"도 함께 가져올것.
SELECT
photos.filename,
users.nickname
FROM
photos
LEFT JOIN users ON
users.id = photos.user_id
;2. 모든 댓글 "내용"을 조회하시오. 단, 댓글이 달린 사진의 "파일명"도 함께 가져올것
SELECT
comments.body,
photos,filename
FROM
comments
left join photos ON
photos.id = comments.photo_id;- 실전 문제 예시
더보기-- 1 : 홍팍이의 모든 주문 목록은?
SELECT
*
FROM
users
JOIN orders ON
orders.user_id = users.id
WHERE
users.nickname = '홍팍'
;
-- 2 : 홍팍이의 모든 주문 횟수는?
SELECT
COUNT(*)
FROM
users
JOIN orders ON
orders.user_id = users.id
WHERE
users.nickname = '홍팍'
;
--3 : 홍팍이의 모든 주문별 결제 금액을 다음과 같이 조회하시오.
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
;
-- 홍팍이의 총결제 금액은?
SELECT
SUM(payments.amount)
FROM
users
JOIN orders ON
orders.user_id = users.id
AND
users.nickname = '홍팍'
LEFT join payments ON
payments.order_id = orders.id
;
-- 상품#1 돈까스의 총판매 금액은 51,600원이다. 이를 쿼리를 통해 조회하시오.
-- 5: 상품#1 돈까스의 총 판매금액은?
SELECT
SUM(products.price * order_details.count)
FROM
products
JOIN order_details ON
order_details.product_id = products.id
AND
products.id =1
JOIN orders ON
orders.id = order_details.order_id
AND
orders.status = 'DELIVERED'
;
출저: 홍팍 (https://www.youtube.com/@hongpark)
이 블로그 기록은 개인 공부용 기록입니다.
'DB > Postgresql(DB)' 카테고리의 다른 글
그룹필터링 , 정렬, 조회 개수 지정 (0) 2023.11.28 그룹화(Group By 와 집계 함수) (0) 2023.11.28 primary key & Foreign Key (0) 2023.11.27 시간값 필터필(타임스탬프,extract,to_char) (1) 2023.11.27 WHERE 절 (1) 2023.11.27