it-swarm.com.de

Der Postgresql-Spaltenverweis "id" ist nicht eindeutig

Ich habe folgendes auserwählt:

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

und ich erhalte die folgende Fehlerspaltenreferenz "id" ist mehrdeutig.

Wenn ich dasselbe select versuche, aber nur nach (name) frage und nicht nach id, funktioniert es. Ich bin neu in diesem Bereich und vermisse vielleicht etwas Offensichtliches. Irgendwelche Vorschläge?

Vielen Dank.

43
Fofole

Sie benötigen den Tabellennamen/-alias im Teil SELECT (möglicherweise (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

Ich nehme an, Ihre p2vg-Tabelle hat auch ein ID-Feld. In diesem Fall kann postgres nicht finden, ob die ID in SELECT auf vg oder p2vg verweist.

sie sollten SELECT(vg.id,vg.name) verwenden, um Mehrdeutigkeiten zu beseitigen

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