El problema es que estás escribiendo mal la consulta, en el inner join estas 
repitiendo una tabla que ya está en la junta, prueba de esta forma:

SELECT
   Tabla1.campo2,
   Tabla1.campo3
FROM
   Tabla1 INNER JOIN Tabla2 ON (Tabla1.campo2 = Tabla2.campo1) INNER JOIN 
Tabla3 ON (Tabla1.campo3 = Tabla3.campo1)
GROUP BY
   Tabla1.campo2,
   Tabla1.campo3

Saludos.

-----Mensaje original-----
De: pgsql-es-ayuda-ow...@postgresql.org 
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Michel Vega Fuenzalida
Enviado el: martes, 30 de agosto de 2011 02:48
Para: pgsql-es-ayuda@postgresql.org
Asunto: [pgsql-es-ayuda] doble INNER JOIN

Buenas lista, sigo con preguntas, soy nuevo en SQL.

Tengo esto:
Tabla1:
campo1, campo2, campo3
   1      1       1
   2      1       2
   3      2       1
   4      2       1
   5      1       2

Tabla2
campo1, campo2
    1    casa
    2    edificio
    3    casa madera

Tabla 3
campo1, campo2
   1      buena
   2      menos buena
   3      mala

Los tabla 2 tiene relación con el campo2 de la Tabla1 y,
la tabla 3 tiene relación con el campo3 de la Tabla1.

La consulta que quiero hacer es mostrar la Tabla1 pero con los valores  
de la Tabla2 y Tabla3
Estoy haciendo esto:
SELECT
   Tabla1.campo2,
   Tabla1.campo3
FROM
   Tabla1 INNER JOIN Tabla2 ON (Tabla1.campo2 = Tabla2.campo1),
   Tabla1 INNER JOIN Tabla3 ON (Tabla1.campo3 = Tabla3.campo1)
GROUP BY
   Tabla1.campo2,
   Tabla1.campo3

Hacer esto da el siguiente error:
El nombre de la tabla: Tabla1, fue especificado más de una vez.

¿Qué tengo mal?

Sé que en el ejemplo hay problemas con los datos, que se repiten, etc.  
pero en la realidad no es así, es solo para ilustrar el problema que  
tengo.

Saludos
-- 
Usemos el Software Libre "Con todos y para el bien de todos"
                   José Martí, 26 de noviembre de 1891, Tampa.

Lic. Michel Vega Fuenzalida.           Usuario Linux: 353763
Administrador de Red
Hospital General Docente "Heroes de Baire", Isla de la Juventud, Cuba.
Teléfono: (53) 46 323012 ext 212


--

Este mensaje le ha llegado mediante el servicio de correo electronico que 
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema 
Nacional de Salud. La persona que envia este correo asume el compromiso de usar 
el servicio a tales fines y cumplir con las regulaciones establecidas

Infomed: http://www.sld.cu/
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a