Sql 从架构中不同于public的表中选择列

Sql 从架构中不同于public的表中选择列,sql,postgresql,Sql,Postgresql,在我的PostgreSQL数据库中,我的表位于importschema中。当我想从列中获取所有数据时,我会: select * from import.master_plan 这个查询工作正常。但是,例如,当我尝试仅获取标题列值时: select import.master_plan.title from import.master_plan; 它返回: ERROR: column master_plan.title does not exist LINE 1: select import

在我的PostgreSQL数据库中,我的表位于
import
schema中。当我想从列中获取所有数据时,我会:

select * from import.master_plan
这个查询工作正常。但是,例如,当我尝试仅获取标题列值时:

select import.master_plan.title from import.master_plan;
它返回:

ERROR:  column master_plan.title does not exist
LINE 1: select import.master_plan.title from import.master_plan;
               ^
HINT:  Perhaps you meant to reference the column "master_plan.  title".
我也试过:

select title from import.master_plan;

但这也不起作用。我正在使用PostgreSQL 10。如何修复此问题?

我建议您改用表别名:

select mp.title
from import.master_plan mp;
这更容易阅读和打字

但是,从错误消息判断,名称似乎有前导空格。比如:

select mp."   title"
from import.master_plan mp;

可能有用。如果是这种情况,请更改表并重命名列。

如果列存在,是否可以检查架构?我在我的博士后10上试过了,效果很好。示例:从schema_1.users中选择名称;另外,在您的示例中,您调用表“master”,然后调用“master_plan”。这是故意的吗?当我将我的列包装到“”中时,它可以正常工作。所以列名包含非字母数字?