3-1) Join
Join : 다른 테이블의 같은 요소 (key)를 매칭하여 여러 정보를 한 눈에 볼 수 있다.
- left join : 어떤 데이터는 비어있는 필드가 있을 수 있다.
- inner join : 데이터가 비어있는 필드가 없다.
select * from users u
select * from point_users
# left join : 포인트 없는 애 다 포함 (NULL 표시)
select * from users u
left join point_users pu
on u.user_id = pu.user_id # 498개 # users 테이블에 point_users 테이블을 갖다 붙임
# user_id가 어떤 테이블의 user_id인지 알려주어야함 (ambiguous)
select * from point_users pu
left join users u
on u.user_id = pu.user_id # 271개 (NULL이 안나옴)
- NULL 확인법
select * from point_users
where user_id = '3b3eac9f'
# inner join : 포인트 있는 애만 표시
select * from users u
inner join point_users pu
on u.user_id = pu.user_id # 271개
select * from point_users pu
inner join users u
on u.user_id = pu.user_id # 271개
※ 테이블을 나눠 놓는 이유 : 같은 목적에 따라 나누는 것이 웹서비스 동작에 있어 매우 편하다
# 실습 1 : orders 테이블에 users 테이블 연결해보기
select * from users u
select * from orders o
select * from orders o
inner join users u
on o.user_id = u.user_id
# 실습 2 : checkins 테이블에 users 테이블 연결해보기
select * from checkins ci
select * from users u
select * from checkins ci
inner join users u
on ci.user_id = u.user_id
# 실습 3 : enrolleds 테이블에 courses 테이블 연결해보기
select * from enrolleds ed
select * from courses c
select * from enrolleds ed
inner join courses c
on ed.course_id = c.course_id
# enrolleds 를 읽고 courses를 읽는데 join을 하면 무엇으로 붙는지 (on이하로) 그 이후 select
select * from courses c # 먼저
inner join enrolleds ed # 뒤에
on ed.course_id = c.course_id
'SQL' 카테고리의 다른 글
(왕왕왕초보의) 엑셀보다 쉬운 SQL - 2주차 <4> (0) | 2022.07.18 |
---|---|
(왕왕왕초보의) 엑셀보다 쉬운 SQL - 2주차 <3> (0) | 2022.07.18 |
(왕왕왕초보의) 엑셀보다 쉬운 SQL - 2주차 <2> (0) | 2022.07.12 |
(왕왕왕초보의) 엑셀보다 쉬운 SQL - 2주차 <1> (0) | 2022.07.12 |
(왕왕왕초보의) 엑셀보다 쉬운 SQL - 1주차 <3(숙제)> (0) | 2022.07.12 |