본문 바로가기

공부/MySQL

관계형데이터베이스 MySQL join

728x90

 

 

 

JOIN으로 테이블 연계하기

테이블 작성 시 join을 통해서 반복되거나 중첩되는 데이터를 다른 테이블로 빼서 연계해주는 것이 가능합니다.

*character

id
title
author_id
1
dong dong
1
2
happy nun
1
3
kakao friends
2
4
buttumak family
1

*author

id
name
location
1
clock studio
bucheon
2
kakao
seoul

위와 같은 2개의 테이블이 있을 때 character 테이블 author_id 에 author 테이블을 매칭해서 보여줄 수 있습니다.

 

 

SELECT * FROM character LEFT JOIN author ON character.author_id = author.id; 
// 캐릭터 테이블의 autour_id에 author id에 맞춰서 합성합니다.
id
title
author_id
id
name
location
1
dong dong
1
1
clock studio
bucheon
2
happy nun
1
1
clock studio
bucheon
3
kakao friends
2
2
kakao
seoul
4
buttumak family
1
1
clock studio
bucheon

join 을 사용했을 때 출력되는 테이블 모습입니다. 이때 author_id와 id는 출력되지 않고 name만 location만 출력되면 훨씬 보기 좋겠죠?

 

SELECT character.id,title,name,location FROM character LEFT JOIN author ON character.author_id = author.id; 
// *는 모든것을 선택할 때 사용합니다. * 대신 출력되는 섹션을 선택해줍니다.
id
title
name
location
1
dong dong
clock studio
bucheon
2
happy nun
clock studio
bucheon
3
kakao friends
kakao
seoul
4
buttumak family
clock studio
bucheon
이렇게 *대신 원하는 섹션을 선택해서 위처럼 출력해서 볼 수가 있습니다.
이때 만약에 섹션명을 변경하고 싶다면 AS를 이용해서 바꿀 수 있습니다.

 

 

SELECT character.id AS num,title,name,location FROM character LEFT JOIN author ON character.author_id = author.id; 
// character의 id를 num 이라고 변경해서 출력합니다.
num
title
name
location
1
dong dong
clock studio
bucheon
2
happy nun
clock studio
bucheon
3
kakao friends
kakao
seoul
4
buttumak family
clock studio
bucheon

 

 

반응형