Ver Mensaje Individual
  #15 (permalink)  
Antiguo 23/04/2007, 17:24
Fridureiks
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: Error En La Consulta

Cita:
Iniciado por eits Ver Mensaje
tambien puedes usar el INNER JOIN, eso dependerá de tus necesidades.

saludos.
Para este caso, si el problema es el que nombro, tampoco le sirve INNER JOIN. Y agrego un enlace, para ser mas claro. Ahi está bien explicado las diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN.

Cita:
El LEFT JOIN y RIGHT JOIN son otro tipo de composición de tablas, también denominada composición externa. Son una extensión del INNER JOIN.

Las composiciones vistas hasta ahora (el producto cartesiano y el INNER JOIN) son composiciones internas ya que todos los valores de las filas del resultado son valores que están en las tablas que se combinan.

Con una composición interna sólo se obtienen las filas que tienen al menos una fila de la otra tabla que cumpla la condición, veamos un ejemplo:

Queremos combinar los empleados con las oficinas para saber la ciudad de la oficina donde trabaja cada empleado, si utilizamos un producto cartesiano tenemos:

SELECT empleados.*,ciudad
FROM empleados, oficinas
WHERE empleados.oficina = oficinas.oficina

Observar que hemos cualificado el nombre de columna oficina ya que ese nombre aparece en las dos tablas de la FROM.

Con esta sentencia los empleados que no tienen una oficina asignada (un valor nulo en el campo oficina de la tabla empleados) no aparecen en el resultado ya que la condición empleados.oficina = oficinas.oficina será siempre nula para esos empleados.

Si utilizamos el INNER JOIN:

SELECT empleados.*, ciudad
FROM empleados INNER JOIN oficinas ON empleados.oficina = oficinas.oficina

Nos pasa lo mismo, el empleado 110 tiene un valor nulo en el campo oficina y no aparecerá en el resultado.

Pues en los casos en que queremos que también aparezcan las filas que no tienen una fila coincidente en la otra tabla, utilizaremos el LEFT o RIGHT JOIN.
Un saludo, espero que les sirva.
__________________
Federico.

Mi página: www.jourmoly.com.ar