将题意分解成如下步骤:
查找关于robot的电影
(
select * from film
where description='robot'
) l1从file_category中筛选出大于五部的电影
(
select category_id, from film_category
group by category_id having count(*)>=5
)fc注意:下面通过where in 从这个fc中筛选出>=5个的category_id
查询为robot的category_id,且电影多余5的的分组中满足robot条件的总个数,起别名为为表 l2
select fc.category_id,count(*) cnt from
(
select * from film_category
where category_id in
(
select category_id from film_category
group by category_id having count(*)>=5
)
) fc
inner join
(
select * from film
where description like '%robot%'
) l1
on fc.film_id=l1.film_id
group by fc.category_id;### 将l2与category表进行内连接,查询category.name 与l2.count(film_id),就这么简短愉快的得到结果啦!!! select c.name,l2.cnt from category c inner join l2 on l2.category_id=c.category_id;

京公网安备 11010502036488号