PostgreSQL 13.0关联表查询时长<95分钟剧情片的SQL语法错误排查
修正后的SQL查询语句(查询时长小于95分钟的剧情片)
你的报错原因是INNER JOIN generos语句缺少关联条件,JOIN操作必须通过ON子句明确表之间的关联字段,否则数据库无法识别表的连接逻辑,触发语法错误。
以下是符合需求的修正版SQL:
SELECT f.* FROM filmes f INNER JOIN filme_genero fg ON f.id = fg.filme_id INNER JOIN generos g ON fg.genero_id = g.id WHERE f.duracao < 95 AND g.nome = '剧情片';
说明:
- 给表设置别名(
f代表filmes,fg代表filme_genero,g代表generos),简化语句结构 - 每个
INNER JOIN都通过ON指定关联逻辑:- filmes和filme_genero通过影片ID关联
- filme_genero和generos通过类型ID关联
- WHERE子句同时筛选两个条件:影片时长小于95分钟,且类型为剧情片(注意:如果generos表中存储类型名称的字段不是
nome,请替换为实际字段名)
内容的提问来源于stack exchange,提问作者dogo
相关产品推荐
相关产品推荐

