Back-end/MYSQL

MYSQL TABLE들 JOIN 해보기

Kitsune_park 2022. 5. 22. 21:10

MYSQL에서 가장 중요한 기능 중 하나인 JOIN을 이용하여 테이블 몇개들 합쳐보자,

 

JOIN은 정보처리기사에서도 단골 문제로 나와서 대략적인 문법은 알고있기에 

 

수월하게 학습할 수 있었다.

 

topic 테이블은 책에 대한 정보들과 작가의 id가 담겨져 있고,

 

author 테이블은 이 작가에 대한 id와 이름 그리고 간단한 프로필이 담겨져 있다. 

 

topic 테이블

 

author 테이블

 

 

이 두 테이블을 비교해보면서 작가에 대한 정보를 알아야할 때, 행이 다섯개라 지금은 확인이 

 

가능하지만, 데이터가 수백 수천개면 도저히 알아보기가 힘들고, 이 때 필요한 기능이 JOIN 이다.

 

SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;

 

이 SQL문을 해석해보자면 모든 속성을 포함해서 보여줘라 topic 테이블과 author 테이블을 

 

왼쪽 내부조인으로 나타낸 후, 그리고 조건은 topic.author_id랑 author.id를 묶어서,

 

이정도로 해석될 수 있다. 결과는 다음과 같다.

 

JOIN된 테이블

 

테이블의 데이터가 너무 많다. 생성 일시와 작가id, 작가를 빼고 꼭 필요한 정보만

 

있는 테이블로 다시 생성해보자. 이 때는 *을 빼고 필요한 속성을 적어주면 된다.

 

SELECT topic.id, topic.title, topic.description, author.name, author.profile FROM topic LEFT JOIN author ON topic.author_id = author.id;

 

 

이렇게 필요한 속성을 적어줌으로서 좀 더 간결한 테이블을 나타낼 수 있다. 

 

마지막으로 저 속성들의 이름을 다시 정의해서 나타내보자,

 

id는 그대로 title은 bookname, description은 그대로, name은 author로, profile은 job으로,

 

수정하여 나태내려면 속성값 뒤에 AS를 붙혀주면 된다. 

 

SELECT topic.id, topic.title AS bookname, topic.description, author.name AS author, author.profile AS job FROM topic LEFT JOIN author ON topic.author_id = author.id;

 

최종 나타낼 data완성!

 

이렇게 최종적으로 내가 보고싶은 속성들과 이 속성들의 이름을 재정의해서 나타낼 수 있다.

 

 

 

'Back-end > MYSQL' 카테고리의 다른 글

MYSQL 기본, CRUD (2)  (0) 2022.05.21
MYSQL 기본, CRUD (1)  (0) 2022.05.21