서브쿼리(subquery)는 쿼리문 안에 쿼리가 들어가는 것을 의미한다.
서브쿼리를 작성할때는 서브쿼리문 앞에 Tap 키로 띄어쓰기를 맞춰준다.
1. WHERE - subquery
SELECT * FROM 테이블명1
WHERE 필드명1 IN (
SELECT 필드명2 FROM 테이블명2
WHERE 필드명 ='필드명'
)
EX)
SELECT * FROM users
WHERE user_id IN (
SELECT user_id FROM orders
WHERE payment_method ='kakaopay' )
풀이) orders 안에 있는 user_id 필드에 payment_method='kakaopay' 결과물을
users 테이블에 있는 user_id 와 겹치는 *(모든정보) 보여주세요
2.SELECT 서브쿼리
SELECT 필드명
( SELECT 필드명 FROM 테이블명 WHERE 필드명 = 필드명 or 값 ) FROM 테이블명
EX)
SELECT c.checkin_id , c.user_id , c.likes,
( SELECT AVG(likes) FROM checkins WHERE user_id = '가나다' ) FROM checkins c
풀이 :)
checkins 안에 likes의 평균을 user_id 에 있는 '가나다' 의 값을 ,
c.checkin_id , c.user_id , c.likes, 나열한 곳에 값을 넣어주세요.
3.FROM 서브쿼리
EX)
SELECT pu.user_id, pu.point, a.avg_like FROM point_users pu
INNER JOIN (
SELECT user_id,round(avg(likes),1) AS avg_likes FROM checkins
GROUP BY user_id
)a ON pu.user_id = a.user_id
풀이 :
checkins 에 있는 user_id , likes 를 user_id 로 취합한 후
pu.user_id 와 a.user_id 를 기준으로
pu.user_id, pu.point, a.avg_like 나열해 주세요.
'개-발 > Database' 카테고리의 다른 글
[Jpa] flush 란 (2) | 2022.12.26 |
---|---|
[SQL] with 절 (0) | 2022.11.04 |
[SQL] Join (0) | 2022.10.26 |
[SQL] SQL 통계 (0) | 2022.10.25 |
[SQL] SQL 기본문법 (Feat.WHERE) (0) | 2022.10.25 |
서브쿼리(subquery)는 쿼리문 안에 쿼리가 들어가는 것을 의미한다.
서브쿼리를 작성할때는 서브쿼리문 앞에 Tap 키로 띄어쓰기를 맞춰준다.
1. WHERE - subquery
SELECT * FROM 테이블명1
WHERE 필드명1 IN (
SELECT 필드명2 FROM 테이블명2
WHERE 필드명 ='필드명'
)
EX)
SELECT * FROM users
WHERE user_id IN (
SELECT user_id FROM orders
WHERE payment_method ='kakaopay' )
풀이) orders 안에 있는 user_id 필드에 payment_method='kakaopay' 결과물을
users 테이블에 있는 user_id 와 겹치는 *(모든정보) 보여주세요
2.SELECT 서브쿼리
SELECT 필드명
( SELECT 필드명 FROM 테이블명 WHERE 필드명 = 필드명 or 값 ) FROM 테이블명
EX)
SELECT c.checkin_id , c.user_id , c.likes,
( SELECT AVG(likes) FROM checkins WHERE user_id = '가나다' ) FROM checkins c
풀이 :)
checkins 안에 likes의 평균을 user_id 에 있는 '가나다' 의 값을 ,
c.checkin_id , c.user_id , c.likes, 나열한 곳에 값을 넣어주세요.
3.FROM 서브쿼리
EX)
SELECT pu.user_id, pu.point, a.avg_like FROM point_users pu
INNER JOIN (
SELECT user_id,round(avg(likes),1) AS avg_likes FROM checkins
GROUP BY user_id
)a ON pu.user_id = a.user_id
풀이 :
checkins 에 있는 user_id , likes 를 user_id 로 취합한 후
pu.user_id 와 a.user_id 를 기준으로
pu.user_id, pu.point, a.avg_like 나열해 주세요.
'개-발 > Database' 카테고리의 다른 글
[Jpa] flush 란 (2) | 2022.12.26 |
---|---|
[SQL] with 절 (0) | 2022.11.04 |
[SQL] Join (0) | 2022.10.26 |
[SQL] SQL 통계 (0) | 2022.10.25 |
[SQL] SQL 기본문법 (Feat.WHERE) (0) | 2022.10.25 |