![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
#1
|
|||
|
|||
LEFT JOIN extraños?
Buenas,
Tengo una consulta un tanto extraña que no me está funcionando, en particular el LEFT JOIN parece estar trabajando de manera poco natural Es decir, por lógica el LEFT JOIN no debería estar restringiendo los resultados de la tabla T1, sin embargo esto no es así. La consulta en particular es: He probado lo mismo con Firebird y me funcionó como era de esperar. Hemos hecho otras pruebas sobre Oracle y lo que nos resultó positivo fué lo siguiente: Al parecer, pudimos concluir en base a la observación directa, que si no se incluye una columna de la tabla T1 (la tabla del FROM) en la condición del LEFT JOIN, éste funciona como un JOIN común. Según lo anterior esto funciona bien: La versión de Oracle que estamos utilizando es: 9i release 9.2.0.1.0 ¿A alguien le ha pasado algo similar?
__________________
Suerte .: Gydba :. |
#2
|
||||
|
||||
![]() Cita:
Cita:
Quizas lo que vos estes intentando hacer sea un natural join Probá con esta sintaxis (no garantizo que funcione de todas formas, pues dependerá de la estructura de tus tablas).
Esta sintaxis es válida (al igual que la del left join) a partir de 9i Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Creo que es un error de interpretación, yo particularmente no quiero hacer un natural JOIN (pensé que en el primer SELECT de ejemplo que puse quedaba claro), de hecho la solución a este problema sería replantear de otra manera mis consultas para evitar estos inconvenientes.
Mas que nada quería saber si a alguien le pasó esto en Oracle, porque o yo estoy loco (que es muy factible ![]() Gracias de antemano.
__________________
Suerte .: Gydba :. |
#4
|
||||
|
||||
![]() Cita:
![]() Cita:
Cita:
no parece un outer join... parece simplemente un encuentro cartesiano de las tablas, que igual se puede conseguir sin un outer join
Pues en realidad no hay nada que "relacione" las tablas... o estoy equivocado?? Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Bueno jachguate antes que nada gracias por tu tiempo.
Ahora, como bien decís vos es un poco ilógico hacer una relación de campos que no mantengan relación (valga la redundancia del juego de palabras ![]() Sin embargo esta prueba la he realizado en otros motores como SQL Server y FB 1.5 y estos no me restringen los resultado de la tabla master (es decir la del FROM) respetando el tipo de JOIN que realizo. Por eso lo que yo buscaba era la explicación correcta de como debería funcionar un JOIN de este tipo y porque el motor de Oracle no resuelve esto de la misma manera que los otros motores probados con lo mismo. Demás decir que los ejemplos que puse son a modo de simplificación puesto que el problema original apareció de una migración de SQL Server a Oracle, donde hay varios triggers y SPs que empezaron a fallar en Oracle y con algunas correciones ya funcionan. Nuevamente gracias por tu aporte
__________________
Suerte .: Gydba :. |
#6
|
||||
|
||||
![]() Cita:
Cita:
Cita:
Cita:
![]() Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|