我有两张桌子,
顺序
product_id | name | quantity
-----------------------------
136 | product1 | 10
137 | product2 | 18
138 | product3 | 5
136 | product1 | 25
136 | product1 | 35
产品
id | product_id | quantity
-----------------------------
1 | 136 | 100
2 | 137 | 90
3 | 138 | 145
4 | 139 | 100
我想要剩余数量的结果,即在oreder表中添加基于product_id的数量。此答案基于product_id从产品表中减去。
例如,我假设product_id是136.在oeder表中有三列存在。 添加数量(即)10 + 25 + 35 = 70。
从产品表的数量中减去此值。在product表中,product_id的数量为100。 所以结果是100-70 = 30。 我想输出是30。 这也将跟随所有其他product_id。
mysql是,
$sql = "SELECT op.name, o.quantity-SUM(DISTINCT op.quantity) AS total FROM " . DB_PREFIX . "order op LEFT JOIN
" 。 DB_PREFIX。 " {产物{1}}
答案 0 :(得分:1)
在加入之前进行聚合:
select p.*, (p.quantity - coalesce(q, 0)) as q_remaining
from product p left join
(select product_id, sum(quantity) as q
from `order`
group by product_id
) o
on o.product_id = p.id;
答案 1 :(得分:0)
select a.productid,a.quantity-b.orders
from product b
left join (select product_id,sum(quantity) as orders
from order
group by product_id) b on a.product_id=b.product_id