为什么我在sqlite3中收到以下错误消息
Error: near line 99: near ".": syntax error
SELECT cast.cast_id, cast.cast_name, AVG(movies.score)
FROM movies
INNER JOIN cast ON cast.movie_id = movies.id
WHERE movies.score >= 40
GROUP BY cast.cast_name
HAVING COUNT(movies.id) >= 2
ORDER BY AVG(movies.score) DESC, cast.cast_name DESC
LIMIT 10;
第99行是第一行(SELECT行)
最佳答案
cast
是SQLite中的保留字。这对于表或列名来说确实是一个糟糕的选择。保留字列表在documentation中。
如果您不能更改表名,请使用显式别名:
SELECT c.cast_id, c.cast_name, AVG(m.score)
FROM movies m INNER JOIN
"cast" c
ON c.movie_id = m.id
WHERE m.score >= 40
GROUP BY c.cast_id, c.cast_name
HAVING COUNT(m.id) >= 2
ORDER BY AVG(m.score) DESC, c.cast_name DESC;
笔记:
表格名称被转义字符包围(反引号和方括号也适用)。
GROUP BY
在SELECT
中具有所有未聚合的列。别名是表名的缩写。
关于sql - 其他工作脚本中的sqlite错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52350256/