SQL练习:SQL30_中等
题目: 你能使用子查询的方式找出属于Action分类的所有电影对应的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'));
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);
题解
# 思路:双层嵌套子查询
SELECT title,description
FROM film F
WHERE film_id IN ( # 3.Action分类id对应的film_id
SELECT film_id
FROM film_category
WHERE category_id IN ( # 2.Action分类id
SELECT category_id
FROM category
WHERE name = 'Action' # 1.Action分类名称
)
)
# 部分网友使用了JOIN连接,答案也是正确的,只不过不完全使用了子查询。
- 个人整理的笔记,仅供学习使用,有问题麻烦指正。
- 题目来源于:牛客网