1. 题目
-
题目描述
使用子查询的方式找出属于Action分类的所有电影对应的title,description -
三张表
2. 题解
注意,题目表中的字段都是竖着显示的。
思路:考察子查询
常见子查询有两种:
- ①
FROM子查询
:使用JOIN
作表连接- ②
WHERE子查询
:使用IN
作条件判断
方法一:FROM 子查询,用JOIN
# 方法一:FROM 子查询,用JOIN
SELECT t.title, t.description
FROM (SELECT f.*, c.name
FROM film f
JOIN film_category fc
ON f.film_id = fc.film_id
JOIN category c
ON c.category_id = fc.category_id) t
WHERE t.name = 'Action'
方法二:WHERE子查询,用IN
# 方法二:WHERE子查询,用IN
SELECT title, description
FROM film
WHERE film_id IN (SELECT film_id
FROM film_category
WHERE category_id = (SELECT category_id
FROM category
WHERE name = 'Action')
)
3. 反思:子查询
其实这两种子查询体现了两种解决问题的方式,
一种是按图索骥,一层一层去寻找;
另一种找到所有的条件,答案就显而易见了。