-
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 예시 모음(자주쓰임)
: 공통적인 부분 뿐만아니라 왼쪽의 데이터를 모두 가져온다.
공통된 부분을 우선 출력하고 데이터가 없는 값들은 null값으로 표현 된다. 더보기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