字符串的SQL条件语句

时间:2016-11-01 21:51:29

标签: mysql

我正在尝试编写一个查询,生成每部动作片的标题,评分为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的新手。如果有人能让我指出正确的方向,我将不胜感激!

2 个答案:

答案 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
  • 单引号是字符串分隔符的SQL标准。