Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/12/2009, 11:49
elwilly
 
Fecha de Ingreso: febrero-2006
Mensajes: 38
Antigüedad: 18 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Duda Varios Left Outer Join

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Cuando el DBMS procesa la sentencia toma la primera tabla y la cruza con la segunda, dando como resultado una tabla en memoria (se denomina tabla derivada), pero el proceso no termina allí: La tabla derivada se cruza con la tercera para dar el resultado final.
El problema se da cuando tienes un registro de la primera que no tiene correspondencia con la segunda. En ese caso el campo t.CLIENT y el t.VALOR contienen NULL, por lo que no se pueden cruzar con ningún dato de la tercera tabla. Ese registro de la primera tabla se podrá relacionar nunca con la tercera.
Esto es así,porque NULL no es un dato, es la ausencia de datos. No puedes cruzar la nada con algo.
En el álgebra de SQL, cualquier operación realizada donde uno de sus valores sea NULL tendrá por resultado NULL, y por tanto no puede dar resultados en una tabla.

¿Se comprende la idea?


En síntesis: el resultado final no es el resultado de cada LEFT OUTER JOIN considerado separamente, sino de la relación de las tres tablas como unidad.


No confundas JOIN con UNION. Son operaciones diferentes.
Dios mío que jaleo tengo en la cabeza ahora mismo.

A ver si te he comprendido al hacer esas LEFT OUTER JOIN lo que hago es buscar los resultados de la relación de las tres tablas combinadas.
Es decir aquellos registros que cumplan todas las clausulas y si alguna de ellas contiene el valor NULL ese registro no será mostrado.

Es así?? Sabes de algún buen libro que poder comprar para aprender bien SQL independientemente de que luego con la práctica es cuando aprendes pero para asentar conceptos??

Muchísimas gracias!!