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

Argumento del LEFT JOIN (incompatibilidad entre mysql 4 y 5?)

Estas en el tema de Argumento del LEFT JOIN (incompatibilidad entre mysql 4 y 5?) en el foro de Mysql en Foros del Web. Buenas, estoy tratando de hacer una migración de mysql 4 a mysql 5 y me encuentro con un par de consultas que me provocan errores ...
  #1 (permalink)  
Antiguo 11/04/2008, 10:02
 
Fecha de Ingreso: junio-2007
Mensajes: 11
Antigüedad: 16 años, 10 meses
Puntos: 0
Argumento del LEFT JOIN (incompatibilidad entre mysql 4 y 5?)

Buenas, estoy tratando de hacer una migración de mysql 4 a mysql 5 y me encuentro con un par de consultas que me provocan errores en mysql 5 y todas tienen un LEFT JOIN medio "raro" por decirlo así que funciona perfectamente en mysql 4 pero no en mysql5

Les transcribo una consulta a ver si alguien puede decirme donde está el error. Deberían poner mayor atención en la parte del LEFT JOIN que he comprobado que es la que causa el problema.


Cita:
SELECT
erp_presupuestos_servicios.int_cantidad,
erp_presupuestos_servicios.int_horas,
erp_presupuestos_servicios.dec_precio,
erp_presupuestos.id_presupuesto,
erp_clientes.int_tipo_facturacion,
erp_clientes.dec_hora,
erp_clientes_servicios.id_servicio AS id_servicio_convenio,
erp_presupuestos.int_estado
FROM
erp_presupuestos_servicios,
erp_servicios_servicios,
erp_presupuestos,
erp_proyectos,
erp_clientes
LEFT JOIN
erp_clientes_servicios
ON ( erp_clientes_servicios.id_cliente = erp_clientes.id_cliente
AND erp_clientes_servicios.id_servicio = erp_presupuestos_servicios.id_servicio )

WHERE
erp_presupuestos.int_estado != 3
AND erp_presupuestos_servicios.id_presupuesto = erp_presupuestos.id_presupuesto
AND erp_presupuestos_servicios.dec_precio > 0
AND erp_presupuestos_servicios.id_servicio IS NOT NULL
AND erp_presupuestos_servicios.id_servicio != ''
AND erp_servicios_servicios.id_servicio = erp_presupuestos_servicios.id_servicio
AND erp_proyectos.id_proyecto = erp_presupuestos.id_proyecto
AND erp_proyectos.int_activo = 1
AND erp_clientes.id_cliente = erp_presupuestos.id_cliente
He resaltado en negrita y cursiva lo que me genera el problema. Supongo que mysql 5 no soporta esa clase de argumento para un JOIN ON. Pero no puedo encontrar la sentencia precisa que me reemplace la anterior y me siga devolviendo el mismo resultado.

El error que devuelve al ejecutar la consulta es el siguiente:
Cita:
Error Code : 1054
Unknown column 'erp_presupuestos_servicios.id_servicio' in 'on clause'
(0 ms taken)
Aclaro que esa tabla y ese campo si existen. Cuando al LEFT JOIN ON le saco uno de los dos argumentos funciona bien, pero no me retorna lo que quiero.

Desde ya muchas gracias!

Saludos

Última edición por m87laucha; 11/04/2008 a las 10:12 Razón: Agregué mas información
  #2 (permalink)  
Antiguo 11/04/2008, 10:04
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Argumento del LEFT JOIN (incompatibilidad entre mysql 4 y 5?)

cual es el mensaje de error que te da?
  #3 (permalink)  
Antiguo 11/04/2008, 12:15
 
Fecha de Ingreso: junio-2007
Mensajes: 11
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Argumento del LEFT JOIN (incompatibilidad entre mysql 4 y 5?)

Cita:
Iniciado por Genetix Ver Mensaje
cual es el mensaje de error que te da?

Cita:
El error que devuelve al ejecutar la consulta es el siguiente:
Cita:
Cita:
Error Code : 1054
Unknown column 'erp_presupuestos_servicios.id_servicio' in 'on clause'
(0 ms taken)
Aclaro que esa tabla y ese campo si existen. Cuando al LEFT JOIN ON le saco uno de los dos argumentos funciona bien, pero no me retorna lo que quiero.
  #4 (permalink)  
Antiguo 11/04/2008, 19:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Argumento del LEFT JOIN (incompatibilidad entre mysql 4 y 5?)

Intenta esto:

LEFT JOIN erp_clientes_servicios ON erp_clientes_servicios.id_cliente = erp_clientes.id_cliente LEFT JOIN erp_presupuestos_servicios ON erp_clientes_servicios.id_servicio = erp_presupuestos_servicios.id_servicio

a ver si hay suerte
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 20:58.