2017-12-26 15 views
1

私のPostgreSQLデータベースには、importスキーマ内のテーブルがあります。公開されているスキーマと異なるスキーマのテーブルから列を選択してください

select * from import.master_plan 

このクエリは正常に動作します。作品を

select 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 import.master_plan.title from import.master_plan; 

それが返されます。私がしようとすると、しかし、例えばタイトルのみ列の値を取得します。私はPostgreSQL 10を使用しています。どうすれば修正できますか?

+1

列が存在する場合、スキーマをチェックできますか?私はPostgres 10で試してみました。 例:SELECT 名前 FROM schema_1.users; また、あなたの例では、テーブル 'master'を呼び出してから 'master_plan'を呼び出しています。これは目的ですか? – Dan

+0

私は私のコラムを ''にラップするとうまくいきます。 –

+0

そのため、列名に英数字以外の文字列が含まれていましたか? – Dan

答えて

2

私はあなたの代わりに表の別名を使用することを示唆している:これは読みとタイプする方がはるかに簡単です

select mp.title 
from import.master_plan mp; 

エラーメッセージから判断すると、名前には先頭のスペースがあるようです。次のようなものがあります。

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

が動作する可能性があります。この場合、テーブルを変更して列の名前を変更します。

関連する問題