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

PostgreSQL关联查询提示列不存在但列实际存在的问题

问题解决:PostgreSQL JOIN时提示“列不存在”

错误原因

你写的"Users.UserID"和"Profiles.UserID"是错误的标识符写法:在PostgreSQL中,双引号会将包裹的整个字符串视为单个列名,而非表名.列名的组合。数据库找不到名为Users.UserID的列,因此报错。

正确查询语句

如果表/列名是大小写敏感的(创建时用双引号指定了大小写),需把表名和列名分别用双引号包裹:

SELECT * 
FROM "Users" 
INNER JOIN "Profiles" ON "Users"."UserID" = "Profiles"."UserID";

若表名和列名均为小写(PostgreSQL默认不区分大小写,除非创建时显式加双引号),也可以省略双引号:

SELECT * 
FROM Users 
INNER JOIN Profiles ON Users.UserID = Profiles.UserID;

验证说明

你之前执行SELECT "UserID" FROM "Users";能成功,是因为双引号仅包裹了列名UserID,数据库可以正确识别Users表下的该列。而JOIN时错误地将表名和列名合并在一个双引号内,导致标识符解析错误。

内容的提问来源于stack exchange,提问作者logos.agbeko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:34:53