Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/02/2011, 12:06
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años
Puntos: 447
Respuesta: Consulta SQLServer no muestra todos los resultados

Hola vivi0309:

Efectivamente, el left join te debe presentar todos los registros de tu tabla de la derecha, independientemente que no tengas información en la tabla de la izquierda, aquí el problema es que en alguna de tus tablas tienes información duplicada, es decir, el join lo estás haciendo sobre un campo que seguramente no es campo llave y por lo tanto se está realizando algún tipo de producto carteciano entre tus tablas: checa este ejemplo para que observes el comportamiento:

Código SQL:
Ver original
  1. DECLARE @Tabla1 TABLE (id INT, campo VARCHAR(50))
  2. INSERT INTO @Tabla1 VALUES (1, 'uno')
  3. INSERT INTO @Tabla1 VALUES (2, 'dos')
  4.  
  5. SELECT * FROM @Tabla1
  6.  
  7. DECLARE @Tabla2 TABLE (id INT, campo VARCHAR(50))
  8. INSERT INTO @Tabla2 VALUES (3, 'uno')
  9. INSERT INTO @Tabla2 VALUES (4, 'uno')
  10.  
  11. SELECT * FROM @Tabla2
  12.  
  13. SELECT * FROM @Tabla1 T1
  14. LEFT OUTER JOIN @Tabla2 T2 ON T1.campo = T2.campo

Si observas la tabla1 sólo contiene dos registros, al hacer un LEFT JOIN con la tabla2 EXISTEN DOS REGISTROS con la descripción 'UNO' de tal manera que el resultado de la consulta queda así:

Código:
id|Campo|id|Campo
--------------------------------
1|uno|3|uno
1|uno|4|uno
2|dos|NULL|NULL
Creo que esto es lo que está pasando en tu caso.

Saludos
Leo.