首先,结合题干应用【join联结表】的形式来解:
思路:
本题只需要通过左连接(left outer join)联结film表和film_category表;既然是求“没有分类的电影id以及名称”,那么film_category表中肯定存在未与film_id匹配的category_id,所以需要where条件语句'where category_id is null'来筛选。具体如下:


select f.film_id as '电影id',
       f.title as '名称'
from films as f left outer join film_categorys as fc
on f.film_id=fc.film_id
where fc.category_id is null;

然后,不考虑使用join联结表,使用子查询(subquery),即嵌套在其他查询中的查询;(注意子查询总是从内向外处理,最常见的是使用where子句的in操作符的解法):
思路:查询出film_category表中所有的film_id,而在film表中这些film_id之外的即为所求。
具体如下:


select film_id as '电影id',
       title as '名称'
from films
where film_id not in (select film_id
                      from film_categorys);

仅作参考,谢谢阅览!