我想获得所有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
答案 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)