2012-03-22 13 views
30

Próbowałem następujące wybierz:Postgresql odniesienia kolumna „id” jest niejednoznaczna

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

i pojawia się następujący błąd odniesienia kolumna „id” jest niejednoznaczna.

Rzecz polega na tym, że próbuję tego samego wyboru, ale ja tylko pytam o (imię i nazwisko), a nie dla id też działa. Jestem nowy w tym i być może brakuje mi czegoś oczywistego. Jakieś sugestie?

Dzięki.

+6

Gdy masz więcej niż jedną tabelę w wyciągu zalecana * sprecyzowane * prefix wasze imiona kolumna z odpowiedniej tabeli aliasu. W ten sposób nigdy nie dostaniesz tego błędu. –

Odpowiedz

43

Musisz Nazwa tabeli/aliasu w SELECT części (może (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; 
4

Przypuszczam tabela p2vg ma również pole id, w tym przypadku, postgres nie można znaleźć, jeśli id ​​w SELECT odnosi się do vg lub p2vg.

należy użyć SELECT(vg.id,vg.name) usunąć dwuznaczność

+0

Tak, tak naprawdę, pole id jest duplikatem. – Fofole

3
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; 
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; 
Powiązane problemy