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

Problemas Con Left Outer Join

Estas en el tema de Problemas Con Left Outer Join en el foro de Bases de Datos General en Foros del Web. HOLA FORO TENGO EL SIGUIENTE PROBLEMA: CUANDO UTILIZO LEFT JOIN CON ESTA CONSULTA NO TENGO NINGUN PROBLEMA: SELECT otorgantes1.identificacionotorg1,otorgantes2.ident ificacionotorg2 FROM (ventas INNER JOIN otorgantes1 ...
  #1 (permalink)  
Antiguo 22/08/2005, 08:27
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 2 meses
Puntos: 1
Sonrisa Problemas Con Left Outer Join

HOLA FORO TENGO EL SIGUIENTE PROBLEMA:


CUANDO UTILIZO LEFT JOIN CON ESTA CONSULTA NO TENGO NINGUN PROBLEMA:

SELECT otorgantes1.identificacionotorg1,otorgantes2.ident ificacionotorg2
FROM (ventas INNER JOIN otorgantes1 ON ventas.idventa=otorgantes1.idventa)
LEFT JOIN otorgantes2 ON ventas.idventa=otorgantes2.idventa
WHERE ventas.idventa=11


PERO CUNADO LO UTILIZO CON ESTA OTRA CONSULTA NO ME SALE NINGUNA FILA Y QUIERO QUE ME SALGA LA FILA JUNTO CON LOS NULL.


SELECT radicacion.idradica,actos.otorgante1act,actos.otor gante2act,otorgantes1.identificacionotorg1,otorgan tes2.identificacionotorg2,
actos.nombreact||' '||actos.abreviacionact AS Acto,
actoscliente.cuantia,actoscliente.catastro,A.nombr esclient||' '||A.apellidosclient AS Nombre,
B.nombresclient||' '||B.apellidosclient AS Nombre2
FROM (((((radicacion INNER JOIN actoscliente ON radicacion.idradica=actoscliente.idradica)
INNER JOIN actos ON actos.idact=actoscliente.idact)
INNER JOIN ventas ON ventas.idactoclie=actoscliente.idactoclie)
INNER JOIN otorgantes1 ON otorgantes1.idventa=ventas.idventa)
INNER JOIN otorgantes2 ON otorgantes2.idventa=ventas.idventa)
,clientes A, clientes B

WHERE radicacion.idradica = 11

AND A.identificacionclient = otorgantes1.identificacionotorg1
AND B.identificacionclient = otorgantes2.identificacionotorg2

ORDER BY otorgantes1.identificacionotorg1


HE REEMPLAZADO LOS INNER JOIN POR LEFT OUTER JOIN PERO NO ME DA

ALGUIEN ME PUEDE DAR UNA MANO .


GRACIAS POR SUS AYUDAS.


__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
  #2 (permalink)  
Antiguo 22/08/2005, 14:56
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
las condiciones que tienes en el where ponlas dentro de los "joins"

es decir algo como


Código PHP:
SELECT radicacion.idradica,actos.otorgante1act,actos.otor gante2act,otorgantes1.identificacionotorg1,otorgan tes2.identificacionotorg2,
actos.nombreact||' '||actos.abreviacionact AS Acto,
actoscliente.cuantia,actoscliente.catastro,A.nombr esclient||' '||A.apellidosclient AS Nombre,
B.nombresclient||' '||B.apellidosclient AS Nombre2 
FROM 
(((((radicacion INNER JOIN actoscliente ON radicacion.idradica=actoscliente.idradica)
INNER JOIN actos ON actos.idact=actoscliente.idact)
INNER JOIN ventas ON ventas.idactoclie=actoscliente.idactoclie)
INNER JOIN otorgantes1 ON otorgantes1.idventa=ventas.idventa)
INNER JOIN otorgantes2 ON otorgantes2.idventa=ventas.idventa)
,
clientes Aclientes B 

and radicacion.idradica 11
AND A.identificacionclient otorgantes1.identificacionotorg1
AND B.identificacionclient otorgantes2.identificacionotorg2

ORDER BY otorgantes1
.identificacionotorg1 
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #3 (permalink)  
Antiguo 22/08/2005, 15:05
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 2 meses
Puntos: 1
Gracias Sir pero no le entiendo, la veo igual
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
  #4 (permalink)  
Antiguo 22/08/2005, 19:20
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Pero no esta igual.. si te fijas cambie el where por un and... de manera que la condicion queda en el join de las tablas. prueba colocar las condiciones en el join que corresponda

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #5 (permalink)  
Antiguo 23/08/2005, 03:39
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Aparte del consejo que te da sir_matrix, el problema puede estar en que al cruzar con alguna de las tablas no tiene nada que cruzar y no devuelve nada.
Fíjate que lo que pones en el título es "left" y sin embargo todo lo que has hecho es "inner join".
Si quieres que te aparezcan las fiilas de la tabla de la izquierda, tenga o no registros de cruce en la de la derecha, pon "left join".
Un saludo.
__________________
Estoy contagiado de Generación-I
  #6 (permalink)  
Antiguo 23/08/2005, 07:41
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 2 meses
Puntos: 1
Si amigos ya la entendí y si funcionó perfecto.
lo que dice vice es cierto debo de hacerle un left join a la tabla clientes para porder curzarlo.




Gracias por todo
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
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




La zona horaria es GMT -6. Ahora son las 15:06.