2016-05-10 10 views
1

以下の構文エラーで私を助けることができます構文エラー - postgresql

カラム参照 "id"はあいまいです。

insert into table1 (id, name, type, version) 
select id, '<needs updating>' as name, 'external' as type, -1 as version 
from table2 
left outer join table1 
on table2.id = table1.id 
where table1.id is null 
group by table2.id, table1.name 


order by table2.id, table1.name 
+0

エラーメッセージについては何が不明ですか? –

答えて

2

修正select id,select table2.id,またはselect table1.id,

0
上記の回答の概要として

、それが必要な理由(これは、それを補足するため、あなたはところで匿名-SOSの答えの代わりに、これを受け入れる必要があります)。

PostgreSQLがクエリを解析するとき、ここのidがtable1.idまたはtable2.idを参照する可能性があるため、エラーをスローします。この場合、2つの値が必ず同じであることに注意することは可能ですが、あいまいさが戻ってくるようにクエリを変更するのではなく、今すぐエラーを取得するほうがよいでしょう。

したがって、table1.idまたはtable2.idを指定し、フィールドを適切に修飾する必要があります。

0

テーブル1とテーブル2の両方のテーブルが同じ列名 "id"を持ちます。両方のテーブルを使用してselectステートメントを実行すると、表示するテーブル "id"が混乱していました。この場合、あいまいなエラーが発生します。 エイリアス名またはtablename.columnnameを使用してこれをよりよく解決するには (つまり、どのテーブルの列にtablename.columnnameが必要ですか)

関連する問題