Skip site navigation (1) Skip section navigation (2)

Re: Ayuda con Outer Join en 3 tablas

From: "Beto Guerrero" <guerrero(dot)beto(at)gmail(dot)com>
To: "Jose Maria Mencia Fernandez" <jmencia(at)alimarket(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con Outer Join en 3 tablas
Date: 2006-10-19 17:23:42
Message-ID: cbb40a720610191023h47d26f94qb43c70ce6b0ead3a@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
creo que solo deberias ponerlo asi, espero no equivocarme:

select a.id_a,a.denominacion as deno_a,ab.id_b,b.denominacion as deno_b
from a
LEFT JOIN ab ON ab.id_a = a.id_a
inner join b on ab.id_b=b.id_b
 where a.denominacion like '%pepe%';

El 19/10/06, Jose Maria Mencia Fernandez<jmencia(at)alimarket(dot)es> escribió:
> 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.
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
>    (envíe "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>


-- 

Atte

Alberto Nicolas Guerrero P.
Desarrollador Java / Open Source
Tel: +51.15331720
Cel: +51.197208984

In response to

Responses

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2006-10-19 17:52:24
Subject: Re: Manejo fechas
Previous:From: ricardo yangumaDate: 2006-10-19 16:54:54
Subject: Re: Manejo fechas

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group