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