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