이제 우리는 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 -
'Web Development > Back-end' 카테고리의 다른 글
MVC Pattern ( Model & View & Controller ) (2) | 2020.08.19 |
---|---|
[NPM] 파일을 실행하는데 필요한 모듈을 한번에 다운로드 하는 방법 (0) | 2020.08.18 |
MySQL - CRUD (0) | 2020.07.28 |
MySQL - 표(Table) (0) | 2020.07.27 |
MySQL - 기초 & Schema (0) | 2020.07.27 |