牛客SQL练习第28题

65 篇文章 1 订阅

题目描述

film表

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表

CREATE TABLE category  (
category_id  tinyint(3)  NOT NULL ,
name  varchar(25) NOT NULL, `last_update` timestamp,
PRIMARY KEY ( category_id ));

film_category表

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

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

解答:

先找到对应电影数量>=5的所有分类,建成虚表cc,设立限定条件 f.description like ‘%robot%’,连接各表查询

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值