Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-11-2008
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Comparar tablas

Hola a todos, tengo una inmensa duda que espero que ayuden a aclarar,
resulta que tengo 2 tablas, Tabla1 y Tabla2, necesito hacer una consulta que
devuelva todos los registros de la Tabla1 que no existan en la tabla2, si alguien tiene una idea, le agradeceré mucho, gracias.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #2  
Antiguo 05-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola mightydragonlor, tendría que ser algo así.

Código SQL [-]
Select t1.* 
From tabla1 t1 
left join tabla2 t2 on (t1.campo1=t2.campo1 and t1.campo2=t2.campo2 and t1.campo3=t2.campo3)
Where t2.campo1 is null

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 05-11-2008
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Hola Caro muchas gracias, voy a probarlo y luego te cuento.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #4  
Antiguo 05-11-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿que no era "left outer"?
__________________

Responder Con Cita
  #5  
Antiguo 05-11-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
como dice Contraveneno es
Código SQL [-]
Select t1.* From tabla1 t1 left outer join tabla2 t2 on (t1.campo1=t2.campo1 and t1.campo2=t2.campo2 and t1.campo3=t2.campo3)Where t2.campo1 is null
Responder Con Cita
  #6  
Antiguo 05-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Holas, que yo sepa la palabra Outer es opcional, con el Outer o sin el Outer me da el mismo resultado (utilizo firebird), me devuelve todos los registros de la tabla de la izquierda t1 y con la condición t2.campo1 is null, se obtine los registros que no tienen su correspondiente en t2.

Si estoy mal, expliquenme la diferencia por favor.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 05-11-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
la diferencia es que tu usas Firebird y yo SQL Server
__________________

Responder Con Cita
  #8  
Antiguo 05-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
la diferencia es que tu usas Firebird y yo SQL Server
Muy buena respuesta amiguito .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #9  
Antiguo 05-11-2008
pinkpanter pinkpanter is offline
Miembro
 
Registrado: oct 2006
Posts: 19
Poder: 0
pinkpanter Va por buen camino
Las dos tablas tienen la misma estructura? Una es la copia de la otra?
Si es asi, puedes utilizar exists

Código SQL [-]
select * from tabla1 where not exists (select * from tabla2)

Si no tienen la misma estructura puedes o:

Código SQL [-]
 
select * from tabla1 where not exists (select * from tabla2 where tabla1.id=tabla2.id)

o

Código SQL [-]
 
select * from tabla1 where tabla1.id not in( select tabla2.id from tabla2)

Tampoco sé que base de datos utilizas....
Responder Con Cita
  #10  
Antiguo 05-11-2008
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Estoy utilizando SQL Server 2000,
con esté código no me dá el resultado correcto.
Código SQL [-]
Select t1.* From tabla1 t1 
left join tabla2 t2 on (t1.campo1=t2.campo1 and t1.campo2=t2.campo2 and t1.campo3=t2.campo3)
Where t2.campo1 is null
se que en la tabla1 hay unos 800 registros que no hay en la tabla2
pero solo me devuelve unos 200 registros.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #11  
Antiguo 05-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por mightydragonlor Ver Mensaje
Estoy utilizando SQL Server 2000,
con esté código no me dá el resultado correcto.
Prueba poniendo el Outer como te han indicado.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #12  
Antiguo 05-11-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
por eso digo que es con "left outer join"
__________________

Responder Con Cita
  #13  
Antiguo 07-11-2008
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Gracias a todos por sus respuestas, efectivamente es la solución que me dió ContraVeneno, gracias de nuevo por ayudarme.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
comparar fechas luxus OOP 3 05-06-2008 14:20:19
¿Como hago una consulta para comparar dos tablas? Nelly Varios 6 16-04-2007 21:56:25
Comparar 2 TImage TomMB Gráficos 5 24-12-2006 21:14:49
comparar con el mod emiliu Varios 1 23-01-2006 20:55:53
Comparar estructura tablas paradox Joana Tablas planas 0 14-05-2004 10:47:26


La franja horaria es GMT +2. Ahora son las 20:03:11.


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
Copyright 1996-2007 Club Delphi