我正在从postgres控制台try 此命令:

select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on (FK_Numbers_id=num.id);

我得到了这样的回应:

ERROR:  column "fk_numbers_id" does not exist
LINE 1: ...m from main_sim sim left join main_number num on (FK_Numbers...

用我的桌子判断一下,如果:

dbMobile=# \d main_sim

 id              | integer               | not null default

 Iccid           | character varying(19) | not null

...

 FK_Device_id    | integer               | 

 FK_Numbers_id   | integer               | 

Indexes:
    "main_sim_pkey" PRIMARY KEY, btree (id)
    "main_sim_FK_Numbers_id_key" UNIQUE, btree ("FK_Numbers_id")
    "main_sim_Iccid_key" UNIQUE, btree ("Iccid")
    "main_sim_FK_Device_id" btree ("FK_Device_id")
Foreign-key constraints:
    "FK_Device_id_refs_id_480a73d1" FOREIGN KEY ("FK_Device_id") REFERENCES main_device(id) DEFERRABLE INITIALLY DEFERRED
    "FK_Numbers_id_refs_id_380cb036" FOREIGN KEY ("FK_Numbers_id") REFERENCES main_number(id) DEFERRABLE INITIALLY DEFERRED

...正如我们所看到的,这个专栏是存在的.

可能是语法错误,但我看不出...

任何帮助都将不胜感激.

推荐答案

不,列FK_Numbers_id不存在,只有列"FK_Numbers_id"存在

显然,您使用双引号创建了表,因此所有列名现在都区分大小写,您必须始终使用双引号:

select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
   left join main_number num on ("FK_Numbers_id" = num.id);

要回顾已经是documented in the manual的内容:

foo列和第FOO列相同,第"foo"列和第"FOO"列不同.

Postgresql相关问答推荐

在SqlalChemy中转义动态CamelCase场

哪种数据类型是除法的结果?

ANTLR4 PostgreSQL语法被 destruct 了吗?

在PostGreSQL中获取最近日期的项目

supabase 中的交易

在Postgres中如何连接具有相同名称列的表并更改列名称?

如何在 PostgreSQL 中使用正则表达式删除单词之间的所有特殊字符和多余空格

pgadmin db 限制服务器属性不起作用

如何将 NULL 值插入 UUID 而不是零

Postgresql:创建默认表空间的视图和使用?

PostgreSQL - 改变数字的精度?

在postgresql中按经纬度查找最近的位置

从左连接更新 Postgres

如何在 psycopg2 中使用服务器端游标

在 PL/pgSQL 中声明行类型变量

适配器 Ecto.Adapters.Postgres 未编译

如何在数据库表中查找重复条目?

与 Oracle 的 CONNECT BY ... START WITH 等效的 PostgreSQL 语法是什么?

PostgreSQL 中是否有类似 zip() 函数的东西,它结合了两个数组?

错误:permission denied for language c