2021_05_21

유지원·2021년 5월 21일
0

TIL - sql 명령어 join

1. sql 명령어 join

sql 명령어에는 select, limit 등 다양하게 있다. 이 중에서도 join에 대해 정리해보려고 한다.

join에는 크게 inner join, outer join이 있다.

(1) inner join
테이블간의 공통된 부분만 검색한다.

SELECT *
FROM 테이블_1
JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B

문제) Jiwon이 작성한 content의 category name을 찾기 위한 SQL을 작성해보자.

select category.name
from category
//'on'을 이용해서 조건을 작성한다.
inner join content_category on category.id = content_category.categoryId 
inner join content on content_category.contentId = content.Id
inner join user on content.userId = user.id
where user.name='Jiwon'

(2) left outer join

SELECT *
FROM 테이블_1
LEFT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B

문제) user의 name과 email 그리고 그 user가 속한 role name을 찾기 위한 SQL을 작성해보자. 속한 role이 없더라도, user의 name과 email,role name을 모두 찾아야한다.

select user.name, user.email, role.name
from user
//모든 user의 정보를 출력해야 하기 때문에 left join을 사용했다.
left join role on user.roleId = role.id 

(3) right outer join

SELECT *
FROM 테이블_1
RIGHT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B

right outer join은 right outer join과 똑같은 결과를 낼 수 있다. 다만 왼쪽에 작성한 테이블을 관점으로 하는지, 오른쪽에 작성한 테이블을 관점으로 하는지에 따라 달려있다.

select user.name, user.email, role.name as roleName 
from role 
right join user on user.roleId = role.id





이번시간에는 mysql에 대해 공부했다.
다음시간에는 데이터베이스를 이용해 Cmarket을 구현한다
오늘은 여기까지 :)

profile
안녕하세요 유지원입니다

0개의 댓글