Ver Mensaje Individual
  #2  
Antiguo 04-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por raffagia
que sentencia utlizo para hacer por sql ke me devuelva el diferencia entre dos tablas?
o sea los elementeo de la primer tabla,, ke no estan en la segunda,,
Se me ocurre que se puede hacer o con un "NOT IN" o utilizando JOIN. Ahora lo explico; Supongamos que tienes dos tablas Tabla1 y Tabla2 cada una con un campo OID que coincide; Se supone que buscamos los registros de tabla1 cuyo OID no está entre los de la tabla2. Sería algo así:

Busca todos los registros de tabla1 cuyo campo OID no está en el campo OID de los registros de la tabla2.

Código SQL [-]
select * from Tabla1 OID where OID not in (select OID from tabla2)

La segunda opción es un poco más comlpleja, pero también más eficiente; Se trata de hacer una JOIN (LEFT JOIN, para ser exactos) a partir de los campos OID de ambas tablas y mirar aquellos que devuelven OID NULL (que son los que en la tabla2 no existen); Para ésta opción es premisa que todos los registros (de ambas tablas) tengan el campo OID relleno:

Código SQL [-]
select tabla1.*, tabla2.OID as OID2 from tabla1 left join tabla2 on tabla1.oid=tabla2.oid where tabla2.oid is null
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita