You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库联表查询出现奇怪错误,请求协助排查

问题解决:PostgreSQL两表联查列名报错

问题根源

PostgreSQL对列名、表名这类标识符的大小写有严格规则:

  • 创建时如果没加双引号,标识符会自动转成小写存储;
  • 如果创建时用双引号包裹了大小写混合的名称(比如你的makesId),引用时必须用双引号包裹才能匹配到正确的列。

你写的models.makesId会被PostgreSQL自动转为小写models.makesid,但实际列名是大小写混合的makesId,所以数据库找不到对应的列,触发报错。

修正后的SQL语句

可以直接给列名加上双引号:

SELECT models.model, makes.make 
FROM models, makes 
WHERE models."makesId" = makes.id;

更推荐使用标准的JOIN语法,可读性更好:

SELECT models.model, makes.make
FROM models
INNER JOIN makes ON models."makesId" = makes.id;

执行以上语句就能正常关联两表,输出所有关联的车型和品牌信息。

内容的提问来源于stack exchange,提问作者jhoangqm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:50:30