Informix - Outer Join en informix

 
Vista:

Outer Join en informix

Publicado por Vasu (3 intervenciones) el 24/05/2007 23:13:20
Hola, estoy liado con una query y no se si es posible hacer lo que quiero hacer ... os explico:

Tengo 4 tablas: A B C D ... todas se relacionan por el id de A ( idA ). Necesito sacar los datos de A, B, C y D aunque en B, C o D no existan datos ( me saque los campos correspondientes a la tabla que está en blanco si no existe ) ...

Las tablas tendrían esta "estructura"

A
idA = 1
CampoA = 2

B
idA = 1
idB = 2
CampoB = 3

C
idA = 1
idC = 2
CampoC = 3

D
idA = 2
idD = 2

A siempre va a existir con registros.
Pues necesito sacar una query que me saque los campos de A, B, C y D cuando idA = 1 es decir:
A.idA A.CampoA B.idB B.CampoB C.idC C.CampoC D.idD
1 2 2 3 2 3

Lo único que he conseguido es hacer que si, en alguna d las tablas no hay registro, me saque los valores de A y el resto vacíos

Era algo así:

SELECT * FROM
{oj A LEFT OUTER JOIN B,C,D ON
A.idA = B.idA AND
A.idA = C.idA and
A.ida = D.idD}

Esto me saca algo así:

A.idA A.CampoA B.idB B.CampoB C.idC C.CampoC D.idD ( todos los campos ... )
1

A ver si alguien ha entendido la "parrafada" y me ilumina

Muchas gracias !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Outer Join en informix

Publicado por Manu (69 intervenciones) el 30/05/2007 15:54:38
no estoy seguro, pero no querrás esto?

SELECT * FROM
{oj A B,C, LEFT OUTER JOIN D ON
A.idA = B.idA AND
A.idA = C.idA and
A.ida = D.idD}

creo que tambien puedes probar con:
SELECT * FROM A, OUTER (B, OUTER (C, OUTER D))
A.idA = B.idA AND
A.idA = C.idA and
A.ida = D.idD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar