Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/08/2009, 06:47
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años, 1 mes
Puntos: 38
Respuesta: Problemas de orientacion: LEFT JOIN o INNER JOIN

No entendi muy bien la duda, pero te comento, cuando he tenido consultas asi, sacar los movimientos de debido y credito de todos los clientes... lo hago por separado, haciendo joins segun el tipo y metiendolos en subqueries...al final con left y tomando como base los clientes obtengo el resultado...

por ejemplo...
Código:
SELECT *
FROM Clientes Cl
Left outer join 
       (
       SELECT IdCliente, [resto de campos]
       FROM Creditos
       WHERE Miscondiciones
       ) Cr
On  Cl.IdCliente = Cr.IdCliente
Left outer join 
       (
       SELECT IdCliente, [resto de campos]
       FROM Debitos
       WHERE Miscondiciones
       ) Db
On  Cl.IdCliente = Db.IdCliente
En tu caso si la factura incluye ambos ids creo que deberia ser tu tabla base para que de ahi puedas ligar hacia ambos sentidos...

en fin, depende mucho de lo que quieras obtener para un requerimiento especifico...

pero algo importante y que siempre aplica: con el inner join siempre te traes lo que hace match en ambas tablas, no importa cual vaya primero o cual despues...

y con el left siempre te traes los registros de la tabla que esta a la izquierda, independientemente si hace match con los registros de la derecha...

con el right es similar al left...

por lo que son cosas distintas del inner...


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.