我已经创建了两个表:
create table movies(id integer, name text, score integer);
create table cast(movie_id integer, cast_id integer, cast_name text);
我需要前10个(不同的,按字母顺序由cast_name)演员和他们的平均电影分数,所以我试过:
select movie_id,cast_id,cast_name,id,score from cast,movies
where movies.id=cast.movie_id and cast_name in
(select distinct cast_name from cast order by cast_name limit 10);
但后来我收到一条错误消息:“。” :语法错误
之后,我试图让它变得更简单:
select cast_name, score from cast,movies where movies.id=cast.movie_id;
我仍然遇到同样的错误。
我想这可能是因为'。'是sqlite3中的一个特殊命令,但无法弄清楚如何解决这个问题。
任何帮助将不胜感激。
答案 0 :(得分:5)
cast
是保留字。保留字列表为here。
select cast_name, score
from `cast` c join
movies m
on m.id = c.movie_id;
您可以使用反引号或双引号将其转义。此查询使用表别名来简化查询和更现代的连接语法。
答案 1 :(得分:0)
您无法使用指定列。表示法只是按名称调用列而不是tablename.columnname