思路:有两种解法可以解决该问题
- 使用 inner join 将三个表连接,查询出共有的电影id,在通过共有电影id与 film 表中的 film_id 做 not in 即可
- 使用 left join 依次连接 film、film_category、category三个表,最后通过条件判断 category_id is null,取出所需的信息
方法一
select film_id, title
from film
where film_id not in (
select f.film_id
from film f, film_category fc, category c
where f.film_id = fc.film_id and fc.category_id = c.category_id
)
方法二
select f.film_id, f.title
from
film f left join film_category fc
on f.film_id = fc.film_id
left join category c
on fc.category_id = c.category_id
where c.category_id is null