Scott Haneda <[EMAIL PROTECTED]> wrote on 02/22/2006 01:47:38 AM: > Got myself a little stumped here, 4.0.18-standard > > Three tables in this mess, orders, order_items and products. > > orders.prod_id = order_items.prod_id = products.prod_id is how I relate them > all to each other. > > order_items has a quantity field. > > I need a report that shows me all the products with a sum() for each, but > only if the status of the order is NOT IN ('cancelled', 'pending', 'ghost') > > This gets me pretty close, but does not mask out the orders that have the > wrong status, as I do not know how to add in the join on orders > > SELECT p.prod_name, count(oi.product_id) as mycount > FROM products as p > LEFT JOIN order_items as oi > on (p.id = oi.product_id) > group by oi.product_id order by mycount; > -- > ------------------------------------------------------------- > Scott Haneda Tel: 415.898.2602 > <http://www.newgeo.com> Novato, CA U.S.A. > >
Shouldn't there be a relationship between orders and order_items like `orders`.`id` = `order_items`.`order_id` or something similar? That would make better sense to me.... Making each `order` product-specific doesn't sound like a good design especially when each `order` looks like it can contain multiple `order_item`s, each potentially for a different `product`. Shawn Green Database Administrator Unimin Corporation - Spruce Pine