MYSQL 3개 테이블 LEFT JOIN하기(두번 JOIN)

post-authors 테이블,  post 테이블, author테이블 JOIN 예상도

 

기존 author테이블 및 post테이블에 post_authors 테이블 추가 생성하여 3개 테이블 LEFT JOIN을 진행하려고한다.

 

  • 현재 author 테이블 및 post 테이블

 

  • post_author 테이블 생성 SQL 구문
-- post_author 테이블 생성
create table post_author(id INT PRIMARY KEY,
post_id INT,
author_id INT,
FOREIGN KEY(post_id) REFERENCES post(id), FOREIGN KEY(author_id) REFERENCES author(id));

-- post_author테이블 id 컬럼 auto_increment 설정
ALTER TABLE post_author MODIFY COLUMN id INT AUTO_INCREMENT;

 

  • post_author 테이블 생성 후 데이터 삽입

 

 

  • 최종적으로 3개 테이블 JOIN예상도와 같이 데이터 값이 추출되는지 SQL구문을 작성하여 테스트 진행
-- post_author 테이블, post 테이블, author 테이블 join하여 데이터 값 추출
select pa.id, pa.post_id, pa.author_id, p.title, p.contents, a.name from post_author as pa inner join post as p on pa.post_id = p.id
inner join author as a on pa.author_id = a.id order by pa.id;

 

  • 데이터 값이 예상했던 것과 같이 추출되는 것 확인