Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

consultar entre dos tablas

Estas en el tema de consultar entre dos tablas en el foro de SQL Server en Foros del Web. hola a tyodo espero de vuestra ayuda tengo tabla1 y tabla2 el cual necesito listar todos los productos que no estan en la tabla1 de ...
  #1 (permalink)  
Antiguo 08/08/2011, 12:52
 
Fecha de Ingreso: junio-2010
Mensajes: 132
Antigüedad: 13 años, 10 meses
Puntos: 2
consultar entre dos tablas

hola a tyodo espero de vuestra ayuda

tengo tabla1 y tabla2 el cual necesito listar todos los productos que no estan en la tabla1 de la tabla2
  #2 (permalink)  
Antiguo 08/08/2011, 13:23
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: consultar entre dos tablas

Hola mgalaz:

¿Qué es lo que haz intentado hacer? ¿Qué duda tienes? ¿La consulta en la que estás trabajando te marca algún error o no te trae los resultados esperados?

Sin ánimos de ofender, tal pareciera que quieres que hagamos tu trabajo, cosa que es correcta.

Opciones tienes muchas, puedes hacer un LEFT JOIN entre tus tablas y filtrar los que te regresen nulos o puedes utilizar una comparación NOT IN o NOT EXISTS entre tus tablas.

Puedes leer acerca de cualquiera de estas opciones y tratar de implementarlas, si continuas con dudas o tienes problemas entonces postea algo del código que haz desarrollado para ayudarte a afinarlo.

Saludos
Leo.
  #3 (permalink)  
Antiguo 08/08/2011, 13:28
 
Fecha de Ingreso: junio-2010
Mensajes: 132
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: consultar entre dos tablas

mira sorry quizas me explese mal lo que pasa he intentado con barias forma y no me lista nada y si hay registro de una tabla y la otra

SELECT *
FROM produtilizadosciru, homologados276
WHERE produtilizadosciru.codigo not in(select homologados276.codusuario from homologados276)


SELECT *
FROM produtilizadosciru inner join homologados276 on produtilizadosciru.codigo=homologados276.codusuari o
WHERE produtilizadosciru.codigo not in(select homologados276.codusuario from homologados276)


no se que mas puedo probar
  #4 (permalink)  
Antiguo 08/08/2011, 13:53
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: consultar entre dos tablas

Hola de nuevo:

Mira, en la primer consulta tienes al no tener definida ninguna relación entre tus tablas se está realizando un producto carteciano, la segunda al utilizar INNER JOIN entonces siempre estarías regresando registros que aparezcan en tus dos tablas cosa que tampoco te sirve.

No pones cual es la estructura de tus tablas, ni nos mencionas cuáles son tus campos llaves, por lo que voy a tratar de explicar con estructuras y datos inventados a ver si se entiende más o menos lo que intento hacer.

Supongamos que tu tabla1 tiene los siguientes datos:

Código:
Tabla1
    id  descripcion
------  -----------
     1  uno        
     2  dos        
     3  tres
Supongamos que tu tabla2 tiene los siguientes datos:

Código:
Tabla2
    id  descripcion
------  -----------
     1  uno               
     3  tres
Por lo tanto es claro que el registro 2 de la tabla 1 no existe en tu tabla2, esto lo puedes hacer como te dije de tres maneras distintas:

Con LEFT JOIN:

Código:
SELECT T1.*
FROM Tabla1 T1 LEFT JOIN Tabla2 T2 ON T1.id = T2.id 
WHERE T2.id IS NULL

Con NOT EXISTS:
SELECT T1.* FROM Tabla1 T1 
WHERE NOT EXISTS (SELECT ID FROM Tabla2 T2 WHERE T1.ID = T2.ID)

CON NOT IN:
SELECT T1.* FROM Tabla1 T1 
WHERE ID NOT IN (SELECT ID FROM Tabla2 T2)
Si esto no es lo que necesitas entonces postea la estructura de tus tablas y pon algunos datos de ejemplo, tratando de explicar un poco mejor qué es lo que necesitas de salida

Saludos
Leo.
  #5 (permalink)  
Antiguo 08/08/2011, 19:03
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: consultar entre dos tablas

Siempre es recomendable utilizar NOT EXISTS or EXISTS, olvidense del IN, por favor.
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 09/08/2011, 07:56
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: consultar entre dos tablas

Efectivamente Iislas, es recomendable no utilizar el IN, es por eso que la pongo como última opción, no tanto para que la utilice sino para que sepa que existe.

Saludos
Leo

Etiquetas: consultar, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.