数据库SQL实战(牛客网): 查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部

本文介绍了如何使用SQL查询描述中包含'robot'的电影对应的分类名称和电影数量,条件是该分类至少有5部电影。涉及film、category和film_category三张表,通过JOIN操作和WHERE子句筛选符合条件的数据,再使用GROUP BY进行分类计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部
film表
字段 说明
film_id 电影id
title 电影名称
description 电影描述信息

CREATE TABLE IF NOT EXISTS film (
film_id smallint(5) NOT NULL DEFAULT ‘0’,
title varchar(255) NOT NULL,
description text,
PRIMARY KEY (film_id));
category表
字段 说明
category_id 电影分类id
name 电影分类名称
last_update 电影分类最后更新时间

CREATE TABLE category (
category_id tinyint(3) NOT NULL ,
name varchar(25) NOT NULL, last_update timestamp,
PRIMARY KEY ( category_id ));
film_category表
字段 说明
film_id 电影id
category_id 电影分类id
last_update 电影id和分类id对应关系的最后更新时间

CREATE TABLE film_category (
film_id smallint(5) NOT NULL,
category_id tinyint(3) NOT NULL, last_update timestamp);

思路:查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部
题目的意思是只要包含robot描述信息所对应的category_id就可以(不必全部包含)
select 语句中如果后面有group by 时,select后面的字段只能是group by后面的字段,或者是该字段的函数。

select c.name , COUNT(fc.film_id) from film as f,category as c,film_category as fc,
(select category_id , count(film_id) as amount from film_category group by category_id having amount >= 5) as cc
where f.description like "%robot%"
and f.film_id = fc.film_id
and c.category_id = fc.category_id
and fc.category_id = cc.category_id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值