본문 바로가기

Web Development/Back-end

MySQL - JOIN

이제 우리는 MYSQL에 데이터베이스(스키마)를 생성하고, 표를 생성하고, 내용을 생성 수정 삭제하는 것을 알아보았습니다.

이제 우리는 마음대로 데이터를 입력,읽기,수정,삭제 할 수 있는 기본적인 DATABASE를 다룰 수 있게 되었습니다.

이번에는 JOIN이라는 관계형 데이터베이스의 꽃이라고 불리우는 기능을 알아보도록 하겠습니다.

 

JOIN은 , 두개의 테이블이 여러 테이블이 있을 때, id값을 통해 같은 id값의 내용을 불러오도록 만드는 방법입니다.

엑셀에서도 사용해 보셨을 것 입니다. 말로만 하면 무엇인지 잘 모르겠으니, 직접 해봅시다.

 

 

1. 테이블 생성 (topic & author)

이전시간에 배운 것을 통해, 어떤 스키마를 사용하든 상관없이 스키마에 접속하셔서, 다음과 같이 테이블 두개를 생성해줍니다.

 

빨간색은 topic 테이블, 그리고 파란색은 author 테이블입니다.

그리고 우리는 join이라는 기능을 통해,

topic 테이블의 author_id값과, author테이블의 id값을 연관지어 데이터를 관계시키는법(?)을 알아보겠습니다.

 

2. JOIN 사용하기

이렇게, topic테이블의 author_id값과, author테이블의 id값을 연관지어,

id값에 알맞은 데이터를 불러오도록 했습니다.

 

이제 코드를 한번 살펴볼까요?

이런 의미의 코드입니다.

 

그런데, 테이블을 가만히 살펴보시면, id가 맨앞에 나오고.. 중간에 author_id값이나오고 그 뒤에, 다시 또 author테이블의 id값이 나오는 것을 알 수 있습니다. 너무 번잡하지않나요?

 

저것을 해결하려면 어떻게 해야할까요?

SELECT문의 *사이에 값을 조정해주면 될 것 이라고 생각할 수 있습니다.

하지만, 그렇게하면 이렇게 오류가나요.

ambiguous 즉, id값이 모호하다는 의미입니다.

 

그럼 어떻게 할까요?

id값이 topic의 id값을 표기하겠다 라고 명시해주면 해결됩니다. 이렇게요.

 

그럼 깔끔하게 id값이 중복되지 않고 한번만 출력되는것을 확인할 수 있습니다.

 

 

- E N D -