Consulta con Left Join

19/11/2003 - 01:16 por Fernando | Informe spam
Tengo una tabla1 con un atributo cod1 (string) y otra tabla2 con cod2
(string), clave (string) y codprov (int). Yo quiero tomar todos los
registros que estan en tabla2 y no estan tabla1 pero que clave <> '' y
codproc = 10.

Hice 2 consultas que parecen iguales pero me arrojan resultados distintos
????

Select * from tabla1
where cod2 not in (Select cod1 from tabla1) and
clave <> '' and codproc = 10

Select t2.cod2, t2.clave, t2.codprov
from tabla2 t2
LEFT JOIN tabla1 t1 ON t1.cod1 = t2.cod2
where t2.clave <> '' and t2.codproc = 10

Alguien puede ver la diferencia.

Gracias de antemano
Saludos
Fernando

Preguntas similare

Leer las respuestas

#6 Fernando
20/11/2003 - 02:37 | Informe spam
Muchas gracias a todos, ahora he notado bien la diferenca.
Saludos
Fernando

"Diego Buendia" escribió en el mensaje
news:
"José Raúl Fenollar Martínez" wrote in message


news:...
> > ='' no es igual q is null
> >
> > ='' no es nulo sino 0 caracteres!! me explico?
>
> Para que entiendas mejor la diferencia, en este caso ='' querria decir


que
> existe el registro en la tabla, pero que su valor es cadena vacia,


mientras
> que is null, signiifcaria que el registro no existe en la tabla.

Para que lo entiendas mejor del todo, aquí tienes un juguete para ver
todas las posibilidades que tienes:

CREATE TABLE aa ( a char(1) )
CREATE TABLE bb ( b char(1) )

INSERT aa SELECT '1'
INSERT aa SELECT '2'
INSERT aa SELECT '3'
INSERT aa SELECT '4'
INSERT aa SELECT '5'

INSERT bb SELECT '1'
INSERT bb SELECT '2'
INSERT bb SELECT '4'
INSERT bb SELECT '6'
INSERT bb SELECT '7'

SELECT aa.a, bb.b
FROM aa
LEFT JOIN bb
ON aa.a = bb.b

SELECT aa.a, bb.b
FROM aa
LEFT JOIN bb
ON aa.a = bb.b
WHERE bb.b = ''

SELECT aa.a, bb.b
FROM aa
LEFT JOIN bb
ON aa.a = bb.b
WHERE bb.b IS NULL


SELECT aa.a, bb.b
FROM aa
INNER JOIN bb
ON aa.a = bb.b


SELECT aa.a, bb.b
FROM aa
RIGHT JOIN bb
ON aa.a = bb.b

-
SELECT aa.a, bb.b
FROM aa
FULL JOIN bb
ON aa.a = bb.b

SELECT aa.a, bb.b
FROM aa
CROSS JOIN bb

DROP TABLE aa
DROP TABLE bb

Saludos,

Diego Buendia
Barcelona Spain
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida