首页 > 试题广场 >

使用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
select f.film_id film_id, f.title title
from film f left join film_category fy on f.film_id = fy.film_id
where fy.category_id is null;
发表于 2024-10-23 11:09:13 回复(0)
select
f.film_id,
f.title
from film f
where f.film_id
not in (
select
c.film_id
from film_category c
join category g
on c.category_id = g.category_id)
发表于 2024-09-30 10:16:04 回复(0)
select f.film_id film_id
,title from film f
left join film_category fc on f.film_id=fc.film_id
where category_id is null

发表于 2024-08-22 14:19:57 回复(0)
select
    f.film_id,
    f.title
from film f left join film_category fc
using (film_id)
where fc.category_id is null
发表于 2024-06-05 16:44:23 回复(0)
这个查询会返回所有在film_category表中没有分类的电影的film_idtitle。换句话说,它找出了那些尚未分类的电影。
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

发表于 2024-05-28 20:41:58 回复(1)
select
    film_id,
    title
from
    film
where
    film_id not in (
        select
            film_id
        from
            film_category
        where
            category_id is not null
    )


编辑于 2024-02-18 15:51:30 回复(0)
select a.film_id,a.title from film a
left join film_category b
on a.film_id=b.film_id
where b.category_id is null;

编辑于 2024-02-06 00:04:39 回复(0)
左连接·1,3表,找出“电影分类”为空的“电影id”和“电影名称”
select
    film_id,
    title
from
    film f
    left join
    film_category fc 
    using(film_id)
where
    category_id is null

发表于 2024-01-11 16:17:23 回复(0)
select 
f.film_id,
f.title
from film f 
left join film_category fc on f.film_id = fc.film_id
left join category c on fc.category_id = c.category_id
where c.name is null

left join 的用法
发表于 2023-11-26 18:40:21 回复(0)
select 
    f.film_id,
    f.title
from film f
left join 
film_category fc
on f.film_id = fc.film_id
left join
category c
on fc.category_id = c.category_id
where c.name is null;
万一有id没名字呢
发表于 2023-10-13 16:45:27 回复(0)
select
    film.film_id,
    film.title
from
    film
    left join film_category on film.film_id = film_category.film_id
    left join category on film_category.category_id = category.category_id
where
    category.category_id is null

发表于 2023-10-11 21:45:47 回复(0)
# 使用join查询方式找出没有分类的电影id以及其电影名称。
#注意:这里主表不能用关系表

select 
 t1.film_id,
 t1.title
from film t1 
left join film_category t2 on t1.film_id = t2.film_id
left join category t3 on t2.category_id = t3.category_id
where t3.category_id is null
;

发表于 2023-09-11 19:40:25 回复(0)
select f.film_id, f.title
from film f
left join film_category c
on f.film_id = c.film_id
where c.film_id is null

发表于 2023-06-19 20:57:03 回复(0)
select
    t1.film_id,
    t1.title
from
    film t1
    left join film_category t2 using (film_id)
where
    t2.film_id is null;

发表于 2023-05-11 12:07:22 回复(0)
select f.film_id, f.title
from 
film as f left join film_category as fc using(film_id)
left join category as c using(category_id)
where fc.category_id is null

发表于 2023-04-18 00:52:59 回复(0)
select film_id,title
from film
left join film_category using(film_id)
where category_id is null;

发表于 2022-12-23 09:45:44 回复(0)
select 
    f.film_id,
    f.title 
from 
    film f left join film_category fc on f.film_id = fc.film_id
where 
    fc.film_id is null 

发表于 2022-12-10 11:12:40 回复(0)
select f.film_id,f.title 
from film f
left join film_category fc
on f.film_id = fc.film_id
left join category c
on fc.category_id = c.category_id
where c.category_id is null;
这题硬是想了一周,用了两个left join和一个限制条件终于做出来了
发表于 2022-10-20 23:47:31 回复(0)