【发布时间】:2018-03-01 04:36:34
【问题描述】:
我正在编写一个相当简单的 SQL 查询来修改 IMDB 数据库;它应该返回所有被归类为恐怖和喜剧的电影的列表,我通过创建一个恐怖列表、一个喜剧列表,然后从另一部中删除所有内容来完成此操作。查询如下:
WITH
table_left AS (SELECT primary_names.name AS name, year, genre, title_id
FROM titles NATURAL JOIN primary_names NATURAL JOIN title_genres WHERE genre = 'Horror'),
table_right AS (SELECT primary_names.name AS name, year, genre, title_id
FROM titles NATURAL JOIN primary_names NATURAL JOIN title_genres WHERE genre = 'Comedy')
DELETE FROM table_right WHERE (title_id NOT IN (SELECT table_left.title_id))
SELECT name, year FROM table_right;
但是,这会在查询的最后一行生成“错误:'SELECT' 处或附近的语法错误”。我对 SQL 很陌生,但是已经多次检查语法并检查了一些指南,但我就是不明白出了什么问题。在 DELETE FROM 语句之后不应该有逗号,我认为我在任何不合适的地方都没有逗号......它可能会盯着我的脸,但我很茫然,并且会喜欢听到任何建议。
【问题讨论】: