Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2008, 10:02
m87laucha
 
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