SQL - Comparar 2 Tablas con Indices dobles

 
Vista:

Comparar 2 Tablas con Indices dobles

Publicado por Juan (1 intervención) el 01/11/2001 14:14:20
Estimados Colisteros:

Necesito ejecutar una consulta que me compare dos tablas. La clave primaria es compuesta. Lo que necesito es que me muestre los registros que existen en una tabla pero no en la otra. Para tablas con clave primaria simple, la consulta que ejecuto y resulta es:

SELECT tabla1.clave FROM tabla1 WHERE tabla1.clave NOT IN (SELECT tabla2.clave FROM tabla2)

Pero no me sirve cuando la comparación por registro tiene que ser entre dos o mas campos (Por ej que tabla1.clave1 y tabla1.clave2 no existan en un mismo registro de la tabla2) ¿Alguna idea?

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comparar 2 Tablas con Indices dobles

Publicado por Juan Mellado (4 intervenciones) el 03/11/2001 17:17:10
Sólo que tienes que utilizar paréntesis para "agrupar en tuplas de valores" los campos que quieres comparar. Por ejemplo:

SELECT tabla1.clave1, tabla1.clave2
FROM tabla1
WHERE (tabla1.clave1, tabla1.clave2)
NOT IN (SELECT tabla2.clave1, tabla2.clave2 FROM tabla2);

Me gustaría comentarte que para mejorar el rendimiento en la documentación de Oracle se recomienda la utilización de EXISTS o MINUS en vez de IN.

Espero haberte ayudado.
Saludos, Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar