web-dev-qa-db-ja.com

Postgresqlの列参照「id」があいまいです

私は次の選択を試みました:

SELECT (id,name) FROM v_groups vg 
inner join people2v_groups p2vg on vg.id = p2vg.v_group_id
where p2vg.people_id =0;

次のエラー列参照「id」があいまいです。

同じ選択を試みても、(name)だけを要求し、idも要求しない場合は、動作します。私はこれが初めてで、多分私は明白な何かを見逃しています。助言がありますか?

ありがとう。

43
Fofole

SELECT部分にテーブル名/エイリアスが必要です(おそらく(vg.id, name)):

SELECT (vg.id,name) FROM v_groups vg 
inner join people2v_groups p2vg on vg.id = p2vg.v_group_id
where p2vg.people_id =0;
56
JScoobyCed

あなたのp2vgテーブルにはidフィールドもあると思います。その場合、postgresはSELECTのidがvgまたはp2vgを参照しているかどうかを見つけることができません。

SELECT(vg.id,vg.name)を使用してあいまいさを解消する必要があります

5
dweeves
SELECT (vg.id, name) FROM v_groups vg 
INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id
WHERE p2vg.people_id = 0;
4
Janaki
SELECT vg.id, 
       vg.name
  FROM v_groups vg INNER JOIN  
       people2v_groups p2vg ON vg.id = p2vg.v_group_id
 WHERE p2vg.people_id = 0;
1
Alex Mack