엑셀보다 쉬운 SQL 3주차

2023. 6. 2. 22:10항해99

JOIN

 

여러 정보를 한 눈에 보고 싶다면 사용한다. 즉 테이블과 테이블을 붙이는 것이다.

join 에는 Left Join 과 Inner Join 이 있다.

 


Left Join

 

A 테이블과 B 테이블이 있다면 A 테이블을 기준으로 B 를 붙이는 것

users 테이블에 point_users 를 붙이기

select * from users u
left join point_users p
on u.user_id = p.user_id

Inner Join

 

교집합이다.

select * from users u
inner join point_users p
on u.user_id = p.user_id

Union

 

결과물을 합친다.

(
	select '7월' as month ,c1.title, c2.week, count(*) as cnt from courses c1
	inner join checkins c2 on c1.course_id = c2.course_id
	inner join orders o on c2.user_id = o.user_id
	where o.created_at < '2020-08-01'
	group by c1.title, c2.week
)
union all
(
	select '8월' as month ,c1.title, c2.week, count(*) as cnt from courses c1
	inner join checkins c2 on c1.course_id = c2.course_id
	inner join orders o on c2.user_id = o.user_id
	where o.created_at >= '2020-08-01'
	group by c1.title, c2.week
)

Join 은 헷갈리는 게 있었지만 하면서 더 많이 익혀야 될것같다. 많이 쓸거같은 느낌