Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Cómo realizar un filtro en la tabla izquierda con left join

Estas en el tema de Cómo realizar un filtro en la tabla izquierda con left join en el foro de Oracle en Foros del Web. Hola, estoy utilizando Oracle, y quiero realizar una consulta con determinado filtro, y el resultado de esta consulta, unirlo con ciertos datos de otra tabla, ...
  #1 (permalink)  
Antiguo 06/08/2007, 05:48
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Cómo realizar un filtro en la tabla izquierda con left join

Hola,

estoy utilizando Oracle, y quiero realizar una consulta con determinado filtro, y el resultado de esta consulta, unirlo con ciertos datos de otra tabla, para lo cual quiero utilizar left join (y que así se respete el resultado de la primera consulta aun cuando la segunda esté vacía).

El problema que veo es que left join devuelve TODA la tabla de la izquierda, no importando que en el "ON" le ponga condiciones (que sí servían cuando no utilizaba el JOIN y estaban en el WHERE).

¿Cómo se puede poner condiciones que funcionen y a la vez usar un LEFT JOIN (en el sentido de unir los resultados a otra tabla, sin que esto conlleve que se pierdan datos de la primera consulta si alguno no estuviera en la segunda)?
  #2 (permalink)  
Antiguo 06/08/2007, 12:59
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 6
Re: Cómo realizar un filtro en la tabla izquierda con left join

Esto no te funciono?

Código:
SELECT *
FROM TablaA A
LEFT JOIN TablaB B
    ON A.Id = B.Id
WHERE A.Campo = 'Valor'
Esta sentencia te debiera retornar todos los valores de la tabla A que esten en el filtro especificado por la sentencia WHERE A.Campo = 'Valor' sin importar si encuentra un registro coincidente en la tabla B.... entiendo que esto es lo que quieres es correcto?

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #3 (permalink)  
Antiguo 07/08/2007, 05:43
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Re: Cómo realizar un filtro en la tabla izquierda con left join

¡Eso era! Lo que pasa es que yo ponía la última condición en el "ON", y no en un "WHERE" separado. Pensaba que el "ON" era como un WHERE, y de hecho en determinados casos como el INNER JOIN sí lo es, y perfectamente las condiciones del where puedes ponerlas en el "ON", pero con el LEFT no (sencillamente obvia las condiciones que pongas ahí excepto las de unión de las dos tablas).
  #4 (permalink)  
Antiguo 29/05/2008, 11:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Re: Cómo realizar un filtro en la tabla izquierda con left join

Cita:
Iniciado por programadornet Ver Mensaje
¡Eso era! Lo que pasa es que yo ponía la última condición en el "ON", y no en un "WHERE" separado. Pensaba que el "ON" era como un WHERE, y de hecho en determinados casos como el INNER JOIN sí lo es, y perfectamente las condiciones del where puedes ponerlas en el "ON", pero con el LEFT no (sencillamente obvia las condiciones que pongas ahí excepto las de unión de las dos tablas).
aver explicxame
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 19:47.