Ayuda con Outer Join en 3 tablas

From: Jose Maria Mencia Fernandez <jmencia(at)alimarket(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda con Outer Join en 3 tablas
Date: 2006-10-19 15:21:29
Message-ID: 1161271289.9972.12.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas a todos, y gracias de antemano; les explico mi duda:
tengo 3 tablas con aspecto similar a éste:

create table A {
id_a integer not null, [PK]
denominacion varchar(50) not null
}
donde la clave primaria es id_a.

create table B {
id_b integer not null, [PK]
denominacion varchar(50) not null
}
donde la clave primaria es id_b.

create table AB {
id_a integer not null,
id_b integer not null
}
donde la clave primaria es (id_a, id_b), ambas como claves ajenas de A y
B respectivamente.

Quisiera sacar todos los registros de la tabla A, con la información de
los registros de la tabla B con la que se relacionan, independientemente
de que existan o no tuplas en AB. Es decir realizar OUTER JOIN de A con
AB y de AB con B. Además quiero aplicar algunos otros criterios de
búsqueda en A como por ejemplo: a.denominacion LIKE '%PEPE%';

En la documentación de Postgresql sólo he encontrado ejemplos de OUTER
JOIN entre dos tablas y me pierdo un poco en la sintaxis a la hora de
cruzar tres tablas.

No estoy seguro de si sería algo parecido a:

select a.id_a,
a.denominacion as deno_a,
ab.id_b,
b.denominacion as deno_b
from (a LEFT OUTER JOIN ab ON ab.id_a = a.id_a)
/* AQUI IRIA EL CRUCE DE ab CON b */
where a.denominacion like '%pepe%';

Les agradecería enormemente su ayuda.
Muchas gracias.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gauto Miguel A. 2006-10-19 15:21:32 Backup and Restore
Previous Message Hensa 2006-10-19 15:20:58 Re: funcion deveule recorset