Tema: Inner Join
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/03/2013, 12:56
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Inner Join

Un LEFT JOIN es mandatorio si no pones la condición de NULL : Sólo devolverá aquellos registros que cumplan la relación en todas las tablas al mismo tiempo. Por eso está devolviendo los que pagaron: Sólo esos figuran en la tabla de pagos.
Si quieres que devuelva todos, la consulta debe ser distinta.
Pero ten en cuenta que el LEFT JOIN es engañoso: Sólo funciona con más de dos tablas cuando cada LEFT JOIN relaciona la tabla resultado con la siguiente. Si creas un LEFT JOIN en estrella, se generan productos cartesianos inesperados.
Por otro lado, no debes olvidarte que la dependencia en cadena hace que sólo devuelva datos si la siguiente tabla puede realmente relacionarse con la tabla resultado del JOIN anterior. Si el valor vinculado es NULL en el LEFT JOIN anterior, no se producirán resultados.
¿Se entiende?

Mi duda es si lo estás haciendo así para "facilitar" leer todo al mismo tiempo, o porque lo necesitas realmente así.
Es muy posible que en realidad debas hacer consultas diferentes para cumplir con diferentes datos.
Explica qué se supone que contiene el reporte que deseas armar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 25/03/2013 a las 13:04