题目要求:查找描述信息(film.description)中包含robot的电影对应的分类名称(category.name)以及电影数目(count(film.film_id)),而且还需要该分类包含电影总数量(count(film_category.category_id))>=5部

  • 思路:三表连接
  • 注意事项:
  1. 描述信息中包含robot使用LIKE;
  2. 分类要求包含电影总数量,是对于分类类别的要求,而不是对于包含robot电影的要求,所以不能直接在条件f.description like '%robot%'后面直接根据条件筛选count(film_category.film_id)>=5
  3. 题目中有误导,分类的电影总数量应该是count(film_categoryfilm_id),而不是count(film_category.category_id)
  • 代码如下:
    select c.name,count(f.film_id) 
    from film f
    join film_category fc on f.film_id=fc.film_id
    join category c on fc.category_id=c.category_id
    where f.description like '%robot%' 
      and c.category_id in (select category_id  from film_category  group by category_id having count(film_id)>=5)
    group by c.name