Selecion de Registros

06/02/2008 - 21:12 por SystemBuilder | Informe spam
Amigos:

Hay alguna forma de seleccionar registros de una tabla que no estan
contenidos en otra tabla?

Me explico:


Tengo en la tabla A los siguientes codigos:

AB01
AB02
AB03
AB04
AB05
AB06
AB07
AB08


En la tabla B, tengo mis ventas en un determinado plazo (esto indica
que, NO todos mis articulos se vendieron)

AB04
AB08
AB02
AB06

Necesito saber, cuales son lo codigos que no se vendieron:

Muchas gracias

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
07/02/2008 - 19:09 | Informe spam
No uso NOT IN, use NOT EXISTS que la mayoria de las veces resulta en mejor
performance que usar LEFT JOIN e indagar si la parte derecha es IS NULL.

Puedes comprobar los planes de ejecucion de ambas sentencias.

select distinct codigo_producto
from t1
where not exists (
select codigo_producto
from t2
where t2.codigo_producto = t1.codigo_producto
)

select distinct t1.codigo_producto
from t1 left join t2 on t1.codigo_producto = t2.codigo producto
where t2.codigo_producto is null
go


AMB

"SystemBuilder" wrote:

Si hay indices en ambas tablas, creo que todo esta correcto, el tema
es que, creì que habìa algo que podia apurar la consulta.

Osea, al consultar la primera parte, BIEN, al consultar la segunda
parte, BIEN,

pero al consultar, la segunda parte, e indicando QUE NO EXISTA en la
otra, es ahi la demora...

en fin, como decia, crei que habìa algo como el left join, para evitar
el NOT IN.

Gracias


Respuesta Responder a este mensaje
#7 Antonio Ortiz
08/02/2008 - 07:09 | Informe spam
Yo lo haria de esta manera:

Select TablaA.Codigo From TablaA Left Outer Join TablaB ON
TablaA.Codigo=TablaB.Codigo Where TablaB.Codigo IS NULL



saludos,


Antonio Ortiz
asesor en sistemas
www.aortiz.net
www.progvisual.com



"SystemBuilder" escribió en el mensaje
news:
Amigos:

Hay alguna forma de seleccionar registros de una tabla que no estan
contenidos en otra tabla?

Me explico:


Tengo en la tabla A los siguientes codigos:

AB01
AB02
AB03
AB04
AB05
AB06
AB07
AB08


En la tabla B, tengo mis ventas en un determinado plazo (esto indica
que, NO todos mis articulos se vendieron)

AB04
AB08
AB02
AB06

Necesito saber, cuales son lo codigos que no se vendieron:

Muchas gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida