获得唯一的color_id哪个库存的数量大于订单的数量

时间:2014-06-24 05:31:10

标签: mysql sql

我想获得所有color_id产品的库存(数量)可用。

表 - 股票

id | product_id | color_id |量

表 - 订单

id | client_id | stock_id |量

我希望从库存中获得唯一的color_id,其中库存数量超过订单数量且特定于product_id。如果订单表中的库存ID不存在,则订单的数量将其作为0;

表order.stock_id是表stock.id的外键。

我在下面尝试了查询

SELECT * FROM stock s,order o where s.id = o.stock_id and(s.quantity-o.quantity)> 0

如果o.quantity不存在则应该采用0

2 个答案:

答案 0 :(得分:0)

很难从文中看出你真正在问什么。但是,如果你想要的是治疗"缺少"订单的数量为0,那么您需要left outer join

SELECT *
FROM stock s LEFT JOIN
     order o
     on s.id = o.stock_id
WHERE s.quantity > COALESCE(o.quantity, 0);

我不确定这与" color"有什么关系,但是您的示例查询也没有提及color

答案 1 :(得分:0)

    select s.color_id from stock s
 where exists
(select * from order o where o.stock_id=s.id
 and s.quantity>o.quantity and s.product_id=123)