24

私はpostgresコンソールからこのコマンドを試しています:

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

そして、私はこの応答を得ました:

エラー: 列 "fk_numbers_id" が存在しません
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

...列が存在することがわかります。

おそらく構文エラーですが、何が原因かわかりません...

どんな助けでも大歓迎です。アレッシオ

4

1 に答える 1

32

いいえ、列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);

マニュアルにすでに記載されている内容を要約するには:

fooFOOは同一ですが、列"foo""FOO"は異なります。

于 2012-04-04T16:43:39.910 に答える