我正在尝试编写一个查询,生成每部动作片的标题,评分为PG-13,R或NC-17。
这是我的SQL:
SELECT title
FROM film
INNER JOIN film_category ON film.film_id = film_category.film_id
INNER JOIN category ON film_category.category_id = category.category_id
WHERE category.name = "Action"
WHERE film.rating = "PG-13" OR "R" OR "NC-17";
我认为问题出在我的电影语法中。我是SQL的新手。如果有人能让我指出正确的方向,我将不胜感激!
答案 0 :(得分:2)
尝试以下方法:
SELECT title
FROM film f INNER JOIN film_category fc ON f.film_id = fc.film_id
INNER JOIN category c ON fc.category_id = c.category_id
WHERE c.name = 'Action'
AND f.rating IN ('PG-13', 'R', 'NC-17');
答案 1 :(得分:2)
您的SQL中有几个错误。我会把它写成:
SELECT f.title
FROM film f INNER JOIN
film_category fc
ON f.film_id = fc.film_id INNER JOIN
category c
ON fc.category_id = c.category_id
WHERE c.name = 'Action' AND f.rating IN ('PG-13', 'R', 'NC-17');
注意:
WHERE
SELECT
最多使用一次。OR
用于布尔表达式,而不是常量。你想要IN
。