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.
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 |