Not In subconsulta...!

13/02/2006 - 15:08 por AlejoR | Informe spam
Que tal grupo.
Se puede hacer un not in en una subconsulta con mas de un campo.

where (campo1, campo2) not in (select c1, c2 from tbl1)

Gracias mil

Preguntas similare

Leer las respuestas

#1 Nelson Javier
13/02/2006 - 17:47 | Informe spam
Hola, AlejoR no te recomiendo esta tecnica... deberias utilizar mejor
el NOT EXISTS
seria algo asi:

SELECT *
FROM TABLAEXTERNA TE
WHERE NOT EXISTS (SELECT 1 FROM TABLAINTERNA TI WHERE TI.CAMPO1 TE.CAMPO1 AND TI.CAMPO2 = TE.CAMPO2)

es mas optimo, hago el SELECT 1 por que lo que hace el not exists es
verificar que el select interno no retorne datos... apenas encuentre
que encontro un dato deja de realizar la consulta interna... mientras
que el not in sigue buscando hasta traer todos los datos...

exitos
Respuesta Responder a este mensaje
#2 Antonio Ortiz
14/02/2006 - 17:01 | Informe spam
A mi me parece mas eficiente un Left Outer Join:
Select * From T1 Left Outer Join T2 ON T1.Campo1 = T2.Campo1,
TI.Campo2 = T2.Campo2 where T2.Campo IS NULL

Sobre todo en SQL Server

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com


"Nelson Javier" escribió en el mensaje
news:
Hola, AlejoR no te recomiendo esta tecnica... deberias utilizar mejor
el NOT EXISTS
seria algo asi:

SELECT *
FROM TABLAEXTERNA TE
WHERE NOT EXISTS (SELECT 1 FROM TABLAINTERNA TI WHERE TI.CAMPO1 > TE.CAMPO1 AND TI.CAMPO2 = TE.CAMPO2)

es mas optimo, hago el SELECT 1 por que lo que hace el not exists es
verificar que el select interno no retorne datos... apenas encuentre
que encontro un dato deja de realizar la consulta interna... mientras
que el not in sigue buscando hasta traer todos los datos...

exitos

Respuesta Responder a este mensaje
#3 AlejoR.
18/02/2006 - 03:09 | Informe spam
Muchas gracias por sus respuestas...
Queria hacer un proceso que se encargara de replicar datos de unas tablas a
otras en diferentes servidores. Lo que hice fue, entonces, usuar la opcion
de Duplicacion de SQLSERVER...

Pero igual tendre presente sus comentarios para otros querys que se
presenten


"AlejoR" escribió en el mensaje
news:
Que tal grupo.
Se puede hacer un not in en una subconsulta con mas de un campo.

where (campo1, campo2) not in (select c1, c2 from tbl1)

Gracias mil
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida