La référence de colonne Postgresql " id " est ambiguë

J'ai essayé la sélection suivante:

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

Et je reçois la référence de colonne d'erreur suivante " id " est ambiguë.

La chose est si j'essaie le même select mais je demande seulement (nom), et pas pour id aussi, cela fonctionne. Je suis nouveau à cela et peut-être que je manque quelque chose d'évident. Toutes les suggestions?

Merci.

33
demandé sur Fofole 2012-03-22 15:09:40

4 réponses

Vous avez besoin du nom/alias de la table dans la partie SELECT (peut-être (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;
45
répondu JScoobyCed 2012-03-22 11:11:27

Je suppose que votre table p2vg a aussi un champ id , dans ce cas , postgres ne peut pas trouver si l'id dans le SELECT fait référence à vg ou p2vg.

Vous devez utiliser SELECT(vg.id,vg.name) pour supprimer l'ambiguïté

4
répondu dweeves 2017-05-05 14:16:01
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;
3
répondu Janaki 2012-03-23 10:24:07
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;
0
répondu Alex Mack 2017-09-25 08:17:40