[Pgsql-ayuda] Join con campos null
David Martinez
davma@planet.com.mx
Thu, 20 Dec 2001 15:44:28 -0600
Estrella Dominguez wrote:
>Saludos ...
>Tengo un problema con un query, el cual realiza un
>join de dos tablas, como las sig:
>La Tabla A consta de dos campos
>cve_a not null
>Nombre not null
>la llave de esta tabla es el campo cve_a
>
>La Tabla B consta de dos campos
>cve_b not null
>cve_a
>Descripcion not null
>la llave de esta tabla es el campo cve_b
>
>quiero hacer un select de la siguiente froma:
>SELECT nombre,Descripcion
>FROM A,B
>WHERE A.cve_a = B.cve_a;
>
>Donde el campo B.cve_a (de la tabla B), puede contener
>valores NUll. Cuando ejecuto el select me trae solo
>los
>registros que cumplen la condicion: A.cve_a = B.cve_a,
>pero no me trae los registros de la tabla B que tienen
>el campo cve_a = NULL
>
>En oracle se que se puede hacer de la siguiente forma:
>SELECT nombre,Descripcion
>FROM A,B
>WHERE A.cve_a = B.cve_a (+);
>
>
>Pgsql-ayuda mailing list
>Pgsql-ayuda@tlali.iztacala.unam.mx
>http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
>
Necesitas aplicar un LEFT JOIN:
select nombre, descripcion
from a left join b on a.cve_a = b.cve_a
Con eso te trae todo el conjunto a y su interseccion con el conjunto b.
OJO: Esta caracteristica esta en postgres 7.1.3 y corresponde a SQL92.