Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/09/2008, 03:15
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Error en Left Join

daniken,
tu problema es una contradicción en la consulta. Le pides un Left join de productos, sí, pero al tiempo limitas el contenido de ese LEFT JOIN a aquellos cuyo productos.item_group es igual a 2, y esos son los que te sacará.
Si quieres sacarlos todos, intenta esto (no lo he probado).

Cita:
SELECT p2.producto, p2.id_proveedor, p2.item_group, p2.costo_producto, cp.id_prensa, cp.id_cotiza, cp.volumen, cp.cant_item, cp.item, cp.precio_item, cp.monto_item FROM productos p2 LEFT JOIN calc_prens cp ON p2.producto = cp.calc_prensa.item INNER JOIN (SELECT id_producto FROM productos p INNER JOIN calc_prensa c ON p.producto = c.calc_prensa.item where p.item_group = 2 and c.id_cotiza =36)T1 ON p2.id_producto = T1.id_producto
Explicación: busco primero mediante INNER JOIN los productos que cumplen esos requisitos. Eso lo hago en la selección a la que pongo el alias T1. Luego hago un LEFT JOIN de la tabla productos con la tabla calc_prensa y un inner join de esta con la selección que he llamado T1. El denominador común de las tabla productos con la selección es el id_producto de los encontrados con esas condiciones. Esos los mostrará con los datos; en los demás los datos serán nulos. Poniendo a los campos que se muestran IFNULL(campo, '-'), escribirá un guión en lugar del a veces molesto NULL.