[3주차] SQL 개념 뿌시기

E Jang·2022년 3월 10일

Join과 Union

1. Join

join : 테이블과 테이블을 붙이는, 실무에서 자주 쓰임
테이블은 한 목적에 맞게 모아두는 것이 가장 좋기 때문에 나누어서 보관. (회원정보는 회원정보끼리 등등 웹서비스가 동작하기 편함)
테이블을 잇는 기준, key값을 기준으로 테이블을 연결해서 한 테이블처럼 보는 것 = VLOOKUP과 동일

(1) Left join

select * from users u
left join point_users p on u.user_id = p.user_id
쿼리문을 돌리면 null 값 포함한 데이터가 나옴

시작할 때는 inner join으로 하는 게 더 편함
-WHY? left join은 순서가 중요 (A+B 붙이고 NULL값 보여주는 것이기 때문에)

select * from enrolleds e
inner join courses c
on c.course_id = e.course_id

  • 쿼리가 진행되는 순서는 from → join → select
    항상 from 들어간 테이블을 기준으로 테이블이 붙는다.

select c1.title, c2.week, count(*) from courses c1
inner join checkins c2 on c1.course_id = c2.course_id
group by c1.title, c2.week
order by c1.title, c2.week

위와 같은 방법으로 2가지 항목으로 묶어서 정렬 및 데이터를 불러올 수 도 있다. course의 title과 checkins의 week로 묶은 것

같은 결과에 도달할 수 있는 방법이 여러가지라 SQL은 정답이 꼭 1가지가 아님!

★(2) Inner join은 교집합이어서 위 쿼리에서 포인트가 있는 유저만 나옴

NULL 값을 추출할 수 있기에 is NULL 과 is not NULL을 활용하여 각각 그룹지을 수 있다.

(3) Outer join은 있지만 잘 안씀

2. Union

select 2번 하는 것보다 union 한 번이 더 효율적

0개의 댓글