Problemas con Left Join

12/01/2010 - 21:13 por Diego | Informe spam
Buenas Tardes.
Tengo un problema que segun la teoria estoy haciendo lo correcto, pero en la
practica no me muestra los resultados deseados.
Tengo 2 Tablas (Destinos y Tarifas)
les paso las descripciones de ambas
Tabla Destinos Tabla Tarifas
NroDestino NroTarifa
DescripcionDestino Destino
importe

lo que quiero saber es si se cargaron las tarifas para todos los destinos,
entonces hago lo siguiente

select
destinos.NroDestino,destinos.DescripcionDestino,tarifas.NroTarifa,tarifas.importe
from destinos
left join tarifas on destinos.NroDestino=tarifas.Destino

Si no estoy haciendo algo mal, con esta instruccion deberia traerme todos
los Nros de tarifa y destinos en los cuales no se le carga nada, y en caso
mostrarme NULL, pero no lo hace, esta instruccion me esta funcionando como
in inner join.

Tengo algo mal en la instruccion?

Gracias de antemano.
Diego.




__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4765 (20100112) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com
 

Leer las respuestas

#1 Alejandro Mesa
12/01/2010 - 22:20 | Informe spam
Diego,

lo que quiero saber es si se cargaron las tarifas para todos los destinos



O sea, que deseas ver si existe algun destino sin tarifa.

select
destinos.NroDestino,
destinos.DescripcionDestino,
tarifas.NroTarifa,
tarifas.importe
from
destinos
left join
tarifas on destinos.NroDestino=tarifas.Destino
where
tarifas.Destino IS NULL;

Tambien puedes usar el operador EXISTS.

select
destinos.NroDestino,
destinos.DescripcionDestino
from
destinos as d
where
not exists (
select *
from tarifas as t
where t.Destino = d.NroDestino
);


AMB




"Diego" wrote:

Buenas Tardes.
Tengo un problema que segun la teoria estoy haciendo lo correcto, pero en la
practica no me muestra los resultados deseados.
Tengo 2 Tablas (Destinos y Tarifas)
les paso las descripciones de ambas
Tabla Destinos Tabla Tarifas
NroDestino NroTarifa
DescripcionDestino Destino
importe

lo que quiero saber es si se cargaron las tarifas para todos los destinos,
entonces hago lo siguiente

select
destinos.NroDestino,destinos.DescripcionDestino,tarifas.NroTarifa,tarifas.importe
from destinos
left join tarifas on destinos.NroDestino=tarifas.Destino

Si no estoy haciendo algo mal, con esta instruccion deberia traerme todos
los Nros de tarifa y destinos en los cuales no se le carga nada, y en caso
mostrarme NULL, pero no lo hace, esta instruccion me esta funcionando como
in inner join.

Tengo algo mal en la instruccion?

Gracias de antemano.
Diego.




__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4765 (20100112) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com




.

Preguntas similares