Subquery란? 쿼리 안의 쿼리라는 의미 , 더 편하고 간단하게 정리할수 있음
(서브쿼리가 없는것)
select u.user_id, u.name, u.email from users u
inner join orders o on u.user_id = o.user_id
where o.payment_method = 'kakaopay'
(서브쿼리가 있는것)
select u.user_id, u.name, u.email from users u
where u.user_id in (
select user_id from orders
where payment_method = 'kakaopay'
)
자주 쓰이는 서브쿼리 유형 ex)) where, select, from절
where에 들어가는 서브쿼리 >>> where 필드명 in (subquery) 이런 방식
select에 들어가는 서브쿼리 >>> select 필드명, 필드명, (subquery) from ..
from에 들어가는 서브쿼리 ## 제일 많이 쓰임 ##
>>> ex)) select pu.user_id, a.avg_like, pu.point from point_users pu
inner join (
select user_id, round(avg(likes),1) as avg_like from checkins
group by user_id
) a on pu.user_id = a.user_id
<문자열>
ex)) 이메일 주소에서 @앞의 아이디만 가져오거나, @뒤의 이메일 도메인을 가져오고 싶어요!
SUBSTRING_INDEX 문법을쓰면 된다.
<<이메일에서 아이디만 가져와보기 >>
select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users
@를 기준으로 텍스트를 쪼개고, 그 중 첫 번째 조각을 가져오라는 뜻! 1or -1
ex))문자열 일부만 출력하기 SUBSTRING 문법 사용
orders 테이블에서 날짜까지 출력하게 해보기
select order_no, created_at, substring(created_at,1,10) as date from orders
SUBSTRING(문자열, 출력을 하고싶은 첫 글자의 위치, 몇개의 글자를 출력하고 싶은지)
'SQL' 카테고리의 다른 글
SQL 3주차. inner join, left join, union all (0) | 2023.03.05 |
---|---|
SQL 2주차. (0) | 2023.02.26 |
SQL 문법 1주차(select , where 문) (0) | 2023.02.19 |