2012-03-22 110 views
30

He intentado lo siguiente selecto:Postgresql referencia de columna "id" es ambiguo

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

y me sale el siguiente error de referencia la columna "ID" es ambigua.

La cosa es si intento la misma selección pero solo pido (nombre), y no también para la identificación, funciona. Soy nuevo en esto y tal vez me falta algo obvio. ¿Alguna sugerencia?

Gracias.

+6

Una vez que tenga más de una tabla en su declaración que debería * * todos los días prefijo sus nombres de columna con el alias de la tabla correspondiente. De esa forma nunca obtendrás este error. –

Respuesta

43

Usted necesita la tabla de nombres/alias en la parte SELECT (tal vez (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

supongo que su mesa p2vg tiene también un campo de ID, en ese caso, postgres no pueden encontrar si el id de la SELECT se refiere a vg o p2vg.

se debe utilizar para eliminar la ambigüedad SELECT(vg.id,vg.name)

+0

Sí, como cuestión de hecho, el campo de identificación está duplicado. – 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; 
Cuestiones relacionadas