RE: doble INNER JOIN

From: Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu>
To: Michel Vega Fuenzalida <michelvf(at)infomed(dot)sld(dot)cu>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: doble INNER JOIN
Date: 2011-08-30 20:06:48
Message-ID: 294D3D02D5E18D42827B2ECFEADEB68818983AA943@mx-interno.vnz.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Michel Vega Fuenzalida
Enviado el: martes, 30 de agosto de 2011 02:48
Para: pgsql-es-ayuda(at)postgresql(dot)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(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2011-08-30 20:26:32 Re: Cálculo de porciento SOLUCIONADO
Previous Message Dario Andres Almonte Alonzo 2011-08-30 19:47:59 Re: Backup con servicio detenido