엑셀보다 쉬운 SQL 3주차: Left Join, Inner Join, Union All

Jiumn·2022년 11월 8일
0
post-custom-banner
  • Join: 두 테이블의 공통된 정보(key값)를 기준으로 테이블을 연결해서 한 테이블
    처럼 보는 것 (엑셀의 vlookup과 비슷한 개념)

Left Join

// 유저 포인트 정보에 유저 정보를 연결
// NULL 값이 포함될 수 있음 (포인트가 없는 유저가 있을 수 있으므로)

select * from point_users
left join users
on point_users.user_id = users.user_id
  • Join을 할 때는 연결의 기준이 되고 싶은 테이블을 from 절에, 기준이 되는 테이블에 붙이고 싶은 테이블을 Join 절에 위치

  • 실행 순서: from → join → select

Inner Join

// 주문 정보에서 naver 메일을 쓰는 유저의 성씨별 주문 건수 가져오기
(*이 데이터베이스에서는 name에 성씨만 공개되어 있음)

select u.name, count(u.name) as count_name from orders o
inner join users u
on o.user_id = u.user_id
where u.email like '%naver.com'
group by u.name
  • 실행 순서: from → join → where → group by → select

is NULL / is not NULL: NULL값의 여부 확인하기

// 유저 중에 포인트가 없는 사람(=즉, 시작하지 않은 사람들)의 통계

select name, count(*) from users u
left join point_users pu on u.user_id = pu.user_id
where pu.point_user_id is NULL
group by name

Union All

SQL로 추출한 두 테이블을 두 테이블을 위 아래로 합치고 싶을 때

// A 테이블과 B 테이블을 위 아래로 합치기

(
	Select 구문으로 추출한 A 테이블
)
  union all
(
	Select 구문으로 추출한 B 테이블
)

※ 스파르타코딩클럽의 '엑셀보다 쉬운 SQL' 강의를 듣고 정리한 SQL 기초 문법입니다.

profile
Back-End Wep Developer. 꾸준함이 능력이다.
post-custom-banner

0개의 댓글