Estoy tratando de enumerar las variaciones del producto con sus cantidades pedidas, PERO TAMBIÉN se muestran las variaciones del producto donde no hay una cantidad solicitada. Así que pensé que sería tan simple como seleccionar los productos y hacer un join de izquierda en los pedidos de cada producto donde el pedido es una revisión actual.La combinación de combinación izquierda/interna de Mysql no funciona como se esperaba
Así que esperar, como en este orden de operaciones:
SELECT p.product_id, SUM(po.quantity)
FROM `products` p
LEFT JOIN `product_orders` po ON p.product_id=po.product_id
LEFT JOIN `orders` o ON o.order_id=po.order_id AND o.is_current='1'
pero que está recibiendo también las cantidades en que el is_current no es 1 Entonces pensé, bien, yo sólo puedo hacer una unión interna después de la izquierda unirse a su lugar de esta manera:
SELECT p.product_id, SUM(po.quantity)
FROM `products` p
LEFT JOIN `product_orders` po ON p.product_id=po.product_id
INNER JOIN `orders` o ON o.order_id=po.order_id AND o.is_current='1'
, pero luego no se enumeran los productos que no han sido ordenados todavía. Esperaba que aparecieran como SUM (cantidad) siendo NULL. ¿Alguien puede ver dónde ha salido mal mi lógica? Gracias! de Scott
tiene sentido, lo intentaré ... un segundo – scott
Perfecto, ¡funciona genial! ! Exactamente lo que se necesitaba. ¡Muchas gracias! – scott
No hay problema. Estabas en el camino correcto; solo necesitaba un paso adicional – kaj