Sakila 스키마에서 특정 배우가 출연한 영화 정보를 조회해보는 실습을 해본다.
사용할 테이블은 아래와 같다.
- actor
- film_text
- film_list
먼저 배우 목록을 확인해본다.
수많은 배우 중에서 actor_id = 1에 해당하는 배우가 출연한 영화를 조회해보도록 한다.
[film_actor] 테이블은 배우아이디별로 출연한 영화아이디를 확인할 수 있다.
출연영화아이디를 조회한다.
select film_id from film_actor
where actor_id = 1;
서브쿼리로 [film_text] 테이블에서 추가정보를 가져온다.
select film_id, title, description from film_text
where film_id in (
select film_id from film_actor
where actor_id = 1
);
title, description 만 있으니 테이블이 허전하다. join 을 사용해 정보를 더 가져온다
select * from film_text ftxt
join film_list flist on flist.fid = ftxt.film_id
where film_id in (
select film_id from film_actor
where actor_id = 1
);
원하는 데이터는 가져왔으나 중복된 데이터가 존재한다. 또한 select 에서 * 를 쓰는 바람에 어떤 데이터를 조회하는지 파악이 어렵다.