[SQL]
left join 합집합으로 만드는거?
inner join 교집합으로 만드는거?
현업에서 inner조인을 많이 사용한다.
1.
SELECT * from users u
left join point_users pu on u.user_id =pu.user_id
왼쪽에 있는내용에 추가한다. 없으면 NULL로 표시
A에 B를 추가하기 때문에 어디가 기준이 되고 어디가 추가 되는지 중요
2.
SELECT * from users u
inner join point_users pu on u.user_id =pu.user_id
공통된 부분만 보인다.
3. '오늘의 다짐' 정보에 과목 정보를 연결해 과목별 '오늘의 다짐' 갯수를 세어보자!
(checkins 테이블에 courses 테이블 연결해서 통계치 내보기)
과목별 -> group by
SELECT c1.course_id ,c2 .title, COUNT(*) as cnt FROM checkins c1
inner join courses c2 on c1.course_id = c2.course_id
group by c1.course_id
4. 유저의 포인트 정보가 담긴 테이블에 유저 정보를 연결해서, 많은 포인트를 얻은 순서대로 유저의 데이터를 뽑아보자!(point_users 테이블에 users 테이블 연결해서 순서대로 정렬해보기)
많은 포인트를 얻은 순서-> order by
유저정보 -> users
유저의 포인트가 담긴 테이블 -> point_users
select * from point_users p
inner join users u
on p.user_id = u.user_id
order by p.point desc
5. 네이버 이메일 사용하는 유저의 성씨별 주문건수 세어보기(orders 테이블에 users 테이블 연결해서 통계치 내보기)
성씨별 -> ~별 Group by
네이버 이메일 사용하는 유저의 -> Where절
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
6. Union
모든 필드가 같아야된다는 조건이 필요함!! A랑 B를 합쳐줄수 있다.
A의 order by가 있고 B가 order by 가 있을때 union으로 합친다면 효과없음
서브쿼리를 이용하면 정렬 할수 있음
7. 4주차
1. subquery
2. with
3. 문자열가공
4. case when -> 조건문
'스파르타코딩클럽(내일배움캠프)' 카테고리의 다른 글
스파르타코딩클럽 내일배움캠프 12주차 2일 (0) | 2023.01.17 |
---|---|
스파르타코딩클럽 내일배움캠프 12주차 1일 (0) | 2023.01.16 |
스파르타코딩클럽 11주차 5일 (0) | 2023.01.13 |
스파르타코딩클럽 내일배움캠프 11주차 4일 (0) | 2023.01.12 |
소수 찾기 (0) | 2023.01.11 |