MySQL

MySQL) 3개 이상의 테이블 조인하기

567Rabbit 2024. 5. 16. 17:43

 

먼저 참고하시면 도움이 됩니다

 

https://codebunny99.tistory.com/74

 

MySQL) 두 개의 테이블 조인하기

여러 테이블 생성시 외래키(foreign key) 설정하기   decimal(8,2)는 소숫점을 합쳐서 8자리, 소숫점 아래 2자리가 표현된다는 뜻이다.  ***********  외래키에 UN(unsigned data type)을 체크해야 하는 이유 cu

codebunny99.tistory.com

 

 

 

 

 

 

 

Reviews에 외래키 설정

 

 

 

 

 

 

 

3개 테이블 조인하기

 

- 리뷰의 제목과 별점 -

select s.title, r.rating, concat(er.first_name,' ', er.last_name) as reviewer
from Reviews r
join Series s
   on r.series_id=s.id
join Reviewers er
   on r.reviewer_id = er.id
order by title ;

 

 

 

from에 연결점인 Reviews가 반드시 오지 않더라도 여러개의 join이 가능하다.

select s.title, r.rating, concat(er.first_name,' ', er.last_name) as reviewer
from Series s
join Reviews r
on s.id = r.series_id
join Reviewers er
on r.reviewer_id = er.id
order by title ;

 

 

 

응용하기

 

-- 리뷰를 한번도 남기지 않았으면, inactive

 

 

 

select er.first_name, er.last_name, count(r.id) as COUNT, ifnull(min(r.rating),0) as MIN,
        ifnull(max(r.rating),0) as MAX, ifnull(avg(r.rating),0) as AVG,
        if(isnull(r.id)=True,'INACTIVE','ACTIVE') as STATUS
from Reviewers er
left join Reviews r
   on er.id= r.reviewer_id
group by er.id ;