Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   buscar registros que estan en una tabla que no estan en otra (https://www.clubdelphi.com/foros/showthread.php?t=75941)

microbiano 29-09-2011 02:43:44

buscar registros que estan en una tabla que no estan en otra
 
bien pues algo que crei realmente facil me esta sacando canas verdes jejeje, quiero saber que registros no estan en una tabla pero si estan en otra.

tabla 1

licitacion- gpo--gen-esp
00641321-017-10 --010--000-0104
00641321-017-10 --010--000-0105
00641321-017-10 --010--000-0106
00641321-017-10 --010--000-0107
00641321-018-10 --010--000-0105
00641321-018-10 --010--000-0106
00641321-018-10 --010--000-0106
00641321-018-10 --010--000-0107

tabla 2

licitacion- gpo--gen-esp -- rfc proveedor
00641321-017-10 --010--000-0104 ---XOBH-801025-UK1

BIEN LO QUE QUIERO ES QUE ME SAQUE LOS REGISTROS DE LA TABLA UNO QUE NO ESTAN EN LA TABLA DOS.

LO INTENTO CON LA SIGUIENTE CONSULTA PERO ME MUESTRA TODOS LOS REGISTROS.
Código SQL [-]
select * from REQUERIMIENTO as a
where not exists(select * from OFER_RECIB as b
where
a.gpo=b.gpo and
a.gen=b.gen and
a.esp=b.esp and
a.zona=b.id_zona and
b.rfc_proveedor='AME -900523-CM3') AND .a.licitacion='LA-019GYR047-T36-2011'

roman 29-09-2011 02:47:51

Algo así, dicho esquemáticamente.

Código SQL [-]
select * from tabla1
left join tabla2 on
  tabla1.campos = tabla2.campos /* campos para hacer la relación */
where
  tabla2.algúncampo is null

// Saludos

constsab 29-01-2013 22:14:47

Gracias Roman,

Este ejemplo tuyo me quedó que ni mandado hacer para mi consulta en access:

SELECT DISTINCT WhereUsed.AAM_ID
FROM ((WhereUsed LEFT JOIN OH ON Whereused.AAM_ID = OH.Item))
WHERE OH.Item is null

Saludos.

Casimiro Notevi 29-01-2013 23:15:05

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

Daguett 31-05-2013 22:14:39

Cita:

Empezado por roman (Mensaje 413865)
Algo así, dicho esquemáticamente.

Código SQL [-]
select * from tabla1
left join tabla2 on
  tabla1.campos = tabla2.campos /* campos para hacer la relación */
where
  tabla2.algúncampo is null

// Saludos

Estimado,

Entiendo la query, pero lo que no me queda claro es el por qué del "tabla2.algúncampo is null".

De Antemano muchas gracias

ecfisa 02-06-2013 01:04:53

Cita:

Empezado por Daguett (Mensaje 461608)
Estimado,

Entiendo la query, pero lo que no me queda claro es el por qué del "tabla2.algúncampo is null".

De Antemano muchas gracias

Hola Daguett.

Por que de cumplirse, quiere decir que existe un registro en la TABLA1 que no satisface la condición: tabla1.campos = tabla2.campos. Y por lo tanto no existe bajo esa relación en la TABLA2.

Tal vez te ayude verlo escrito de otro modo:
Código SQL [-]
SELECT *
FROM TABLA1 T1
WHERE NOT EXISTS (SELEC * FROM TABLA2 T2 WHERE T1.ID = T2.TABLA1_ID)


Saludos. :)


La franja horaria es GMT +2. Ahora son las 02:53:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi