首页 > 试题广场 >

使用join查询方式找出没有分类的电影id以及名称

[编程题]使用join查询方式找出没有分类的电影id以及名称
  • 热度指数:167925 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
现有电影信息表film,包含以下字段:
字段 说明
film_id 电影id
title 电影名称
description 电影描述信息

有类别表category,包含以下字段:
字段 说明
category_id 电影分类id
name 电影分类名称
last_update 电影分类最后更新时间

电影分类表film_category,包含以下字段:
字段 说明
film_id 电影id
category_id 电影分类id
last_update 电影id和分类id对应关系的最后更新时间

使用join查询方式找出没有分类的电影id以及其电影名称。
示例1

输入

drop table if exists  film ;
drop table if exists  category  ; 
drop table if exists  film_category  ; 
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));
CREATE TABLE category  (
   category_id  tinyint(3)  NOT NULL ,
   name  varchar(25) NOT NULL, `last_update` timestamp,
  PRIMARY KEY ( category_id ));
CREATE TABLE film_category  (
   film_id  smallint(5)  NOT NULL,
   category_id  tinyint(3)  NOT NULL, `last_update` timestamp);
INSERT INTO film VALUES(1,'ACADEMY DINOSAUR','A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies');
INSERT INTO film VALUES(2,'ACE GOLDFINGER','A Astounding Epistle of a Database Administrator And a Explorer who must Find a Car in Ancient China');
INSERT INTO film VALUES(3,'ADAPTATION HOLES','A Astounding Reflection of a Lumberjack And a Car who must Sink a Lumberjack in A Baloon Factory');

INSERT INTO category VALUES(1,'Action','2006-02-14 20:46:27');
INSERT INTO category VALUES(2,'Animation','2006-02-14 20:46:27');
INSERT INTO category VALUES(3,'Children','2006-02-14 20:46:27');
INSERT INTO category VALUES(4,'Classics','2006-02-14 20:46:27');
INSERT INTO category VALUES(5,'Comedy','2006-02-14 20:46:27');
INSERT INTO category VALUES(6,'Documentary','2006-02-14 20:46:27');
INSERT INTO category VALUES(7,'Drama','2006-02-14 20:46:27');
INSERT INTO category VALUES(8,'Family','2006-02-14 20:46:27');
INSERT INTO category VALUES(9,'Foreign','2006-02-14 20:46:27');
INSERT INTO category VALUES(10,'Games','2006-02-14 20:46:27');
INSERT INTO category VALUES(11,'Horror','2006-02-14 20:46:27');

INSERT INTO film_category VALUES(1,6,'2006-02-14 21:07:09');
INSERT INTO film_category VALUES(2,11,'2006-02-14 21:07:09');

输出

3|ADAPTATION HOLES
头像 数据分析阿宇君
发表于 2020-08-28 21:54:28
法一:内连接+not in select film_id as '电影id',title as '名称' from film where film_id not in(select f.film_id from film f inner join film_category fc on f.film 展开全文
头像 N刻后告诉你
发表于 2020-05-19 20:37:54
题目:使用join查询方式找出没有分类的电影id以及名称 方法:LEFT JOINSELECT f.film_id, f.titleFROM film AS fLEFT JOIN film_category AS fcON f.film_id=fc.film_idWHERE category_id 展开全文
头像 高质量搬砖人
发表于 2021-01-30 11:13:55
方法)外部连结 使用join 电影没有分类 select f.film_id, f.title from film as f left join film_category as fc on f.film_id = fc.film_id wh 展开全文
头像 牛客MaQi
发表于 2021-08-14 18:01:26
答案 select f.film_id, f.title from film f left join film_category fc on f.film_id = fc.film_id where fc.category_id is NULL;思路 以film为主表,连接film和film_cat 展开全文
头像 超超i7宝
发表于 2020-11-28 16:06:04
该题的考点为联表查询,即LEFT JOIN film_f,并且找出其中值为null的元素 SELECT f.film_id, f.titleFROM film f LEFT JOIN film_category fcON f.film_id = fc.film_idWHERE fc.category 展开全文
头像 jiang_dr
发表于 2021-10-18 10:20:16
思路:有两种解法可以解决该问题 使用 inner join 将三个表连接,查询出共有的电影id,在通过共有电影id与 film 表中的 film_id 做 not in 即可 使用 left join 依次连接 film、film_category、category三个表,最后通过条件判断 cat 展开全文
头像 数据流动DataFlow
发表于 2023-03-13 10:04:03
方法一:思路:直接电影信息表 film left join 电影分类表 film_category 判断 category_id 是否为 null代码: select f.film_id,f.title from film f left join film_category f 展开全文
头像 重铸广师荣光
发表于 2022-05-14 15:32:25
使用left join 连接表,使得以电影票为左边都有数据, select t1.film_id,t1.title,t3.category_id from film t1 left join film_category t2 on t1.film_id = t2.film_id left joi 展开全文
头像 yangdongaaa
发表于 2021-11-19 16:22:37
SELECT T1.film_id, T1.title FROM film T1 LEFT JOIN film_category T2 ON T1.film_id = T2.film_id WHERE T2.category_id IS NULL
头像 阿蘭
发表于 2021-11-27 13:06:52
SELECT f.film_id, f.title FROM film f LEFT JOIN film_category fc USING (film_id) WHERE fc.category_id IS NULL