[Pgsql-ayuda] Join con campos null

Oscar Cano R. ocano@lagente.com
Thu, 20 Dec 2001 13:50:02 -0600


>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 =3D 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 =3D B.cve_a,
>pero no me trae los registros de la tabla B que tienen
>el campo cve_a =3D NULL
>
>En oracle se que se puede hacer de la siguiente forma:
>SELECT nombre,Descripcion
>FROM   A,B
>WHERE  A.cve_a =3D B.cve_a (+);
>
>Como le hago en postgres para que haga lo mismo?
>
>=3D=3D=3D=3D=3D
>Si lo que quieres es vivir cien a=F1os, no vivas como vivo yo.
>
Desgraciadamente hasta donde se no se puede realizar estos LEFT o=
 
RIGHT JOIN , ya que postgres no los soporta (no se sien la ultima=
 
version ya).
Lo que yo hice fue poner un campo que por default B.cve_a tome un=
 
valor que te substitulla el null p.ej
tabla A
cve_a | Nombre
0         |  (NULL)
1         | Juan
2         | Oscar
3         | Maria
4         | Rocio

tabla B(cve_a default 0)
cve_b | cve_a | Descripcion
1         |  1         | cuate
2         |  0         | Interesado
3         |  0         | Barbero
4         |  2         | Hermano
5         | 0          | Ley

Asi es como yo solucione este rollo, espero te sirva.
Salu2.