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

no me funca el left join

Estas en el tema de no me funca el left join en el foro de SQL Server en Foros del Web. hola amios, toy que le doy vuelta a este problema ya desde ayer y no me funca: tengo 2 tablas la primera con 47 registros(#totalAct) ...
  #1 (permalink)  
Antiguo 12/09/2012, 16:59
 
Fecha de Ingreso: agosto-2009
Ubicación: Lima
Mensajes: 226
Antigüedad: 14 años, 7 meses
Puntos: 3
no me funca el left join

hola amios,
toy que le doy vuelta a este problema ya desde ayer y no me funca:
tengo 2 tablas

la primera con 47 registros(#totalAct) y la segunda(preactividad) con 492 registros
hago este select y me muestra los 492, yo lo que quiero es que me muestre solo los 47 de la primera tabla

select distinct a.cod_actividad, b.id_preacti
from #totalAct as a
left join preactividad as b on b.cod_actividad = a.cod_actividad
and id_espec=1

el cod_actividad de la primera tabla es unica y el de la segunda se repite muchas veses. Diganme como lo hago el sqlserver 2008 para que solo me muestre los 47 registros de la primera tabla?????

GRACIAS!!!!!!
  #2 (permalink)  
Antiguo 13/09/2012, 08:11
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: no me funca el left join

prueba con right join ;) saludos!!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 13/09/2012, 14:19
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: no me funca el left join

Supongamos que la primera tabla tiene en la columna cod_actividad unica:
1
2
3
4
y la segunda tabla tiene en la columna cod_actividad:
1
1
2
2
3
3
4
4
Las salidas de Inner Join o de Left Join o de Right Join seran en todos los casos de 8 filas.
Puede ser que lo que necesitas es lo siguiente:
Código SQL:
Ver original
  1. SELECT *
  2. FROM #totalAct
  3. WHERE cod_actividad IN (SELECT cod_actividad FROM preactividad WHERE id_espec=1);
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #4 (permalink)  
Antiguo 13/09/2012, 17:04
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: no me funca el left join

Ya hemos recomendado que el IN(), no debe utilizarse por lentitud de respuesta es mucho mejor el EXISTS ()
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 13/09/2012, 23:09
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: no me funca el left join

iislas- de lo que yo se no debe haber ninguna diferencia entre In y Exists (o Not In y Not Exists) o al menos - no mas que una diferencia despreciable.
El sintaxis del Exist es mas complicado, pero las capacidades son mejor.
Tienes algun vinculo a la recomendación que mencionaste?
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #6 (permalink)  
Antiguo 14/09/2012, 10:38
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: no me funca el left join

GeriReshef

Hay un documento de Microsoft de buenas practicas en T-SQL (que a algunos de aqui ya he compartido), donde se menciona claramente que el IN debe dejarse como ULTIMA OPCION, se recomienda en su caso y por cuestiones de tiempos de respuesta utilizar el EXISTS.

Si deseas, puedes hacer tus propias pruebas con tablas con bastante informacion y tu mismo llegaras a dicha conclusion.

La verdad que ya he tratado tanto el tema, que me da heva, volverlo a comentar

Saludos
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 14/09/2012, 10:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: no me funca el left join

Cita:
Iniciado por iislas Ver Mensaje
GeriReshef

Hay un documento de Microsoft de buenas practicas en T-SQL (que a algunos de aqui ya he compartido), donde se menciona claramente que el IN debe dejarse como ULTIMA OPCION, se recomienda en su caso y por cuestiones de tiempos de respuesta utilizar el EXISTS.

Si deseas, puedes hacer tus propias pruebas con tablas con bastante informacion y tu mismo llegaras a dicha conclusion.

La verdad que ya he tratado tanto el tema, que me da heva, volverlo a comentar

Saludos
:apla uso:

muy buen comentario compañero
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 14/09/2012, 17:45
 
Fecha de Ingreso: agosto-2009
Ubicación: Lima
Mensajes: 226
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: no me funca el left join

GRACIAS A TODOS POR SUS COMENTARIOS, y aprendi algo del Exist

Etiquetas: join, left, registro, select, server, sql, tabla
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 22:06.