1) Join이란?
👉 Join이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미해요.
예) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한 눈에 보고 싶어요!
2) Join의 종류
- Left Join
ex) select * from users u
left join point_users p on u.user_id = p.user_id
- Inner Join # 일종의 교집합
ex) select * from users u
inner join point_users p on u.user_id = p.user_id # 각 필드마다 별칭을 붙여 join시 사용
3) Join 연습하기
- orders 테이블에 users 테이블 연결해보기
select * from orders o
inner join users u on o.user_id = u.user_id
- checkins 테이블에 users 테이블 연결해보기
select * from checkins ch
inner join users u on ch.user_id = u.user_id
- enrolleds 테이블에 courses 테이블 연결해보기
select * from enrolleds e
inner join courses c on e.course_id = c.course_id
- checkins 테이블에 courses 테이블 연결해서 통계치 내보기 _ 과목별 오늘의 다짐 갯수 세어보기
select ch.course_id, c.title , count(*) as cnt from checkins ch
inner join courses c on ch.course_id = c.course_id
group by ch.course_id # ~별로 : group by

- point_users 테이블에 users 테이블 연결해서 순서대로 정렬해보기 _ 많은 포인트를 얻은 순서대로 유저 데이터 정렬해서 보기
select p.user_id ,u.name , u.email ,p.point from point_users p # user_id, name, email, point만 추출하기
inner join users u on p.user_id = u.user_id
order by p.point desc
- orders 테이블에 users 테이블 연결해서 통계치 내보기 _ 네이버 이메일 사용하는 유저의 성씨별 주문건수 세어보기
select u.name, count(*) as cnt from orders o
inner join users u on o.user_id = u.user_id
where u.email like '%naver.com' # 네이버 이메일을 사용한다는 조건을 받기 -> where 은 %와 같이 사용
group by u.name
'스파르타 > SQL' 카테고리의 다른 글
SQL_3주차_ Left join (0) | 2023.01.12 |
---|---|
SQL_3주차_ join 퀴즈 (0) | 2023.01.12 |
SQL_2주차_숙제 (0) | 2023.01.04 |
SQL_2주차_Group by와 Order by (0) | 2023.01.03 |
SQL_1주차_ 숙제 (0) | 2023.01.03 |