25/03/2013, 12:56
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años 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 |