Ссылка на столбец 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 " неоднозначна.

дело в том , что если я попробую тот же выбор, но я прошу только (имя), а не id, он работает. Я новичок в этом, и, возможно, я упускаю что-то очевидное. Есть предложения?

спасибо.

4 ответов


вам нужно имя таблицы / псевдоним в 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;

Я полагаю, что ваша таблица p2vg также имеет поле id , в этом случае postgres не может найти, если id в SELECT относится к vg или p2vg.

вы должны использовать SELECT(vg.id,vg.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;

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;