每个人都处于某种水平。我是股票,我需要帮助,因为我是 mysql 新手。
我试图获取订购存储的 Material (建筑物)的总和以及从商店中删除的 Material 的总和,以便我可以获得商店中剩余的 Material 总数,但在加入第三个表后我得到了重复的结果。
这是我的表格:
表:产品
serial name <br>
13 Windows<br><br>
14 Doors<br><br>
15 Ceramic Tiles<br><br>
16 Granite<br><br>
表:order_detail
orderid productid quantity<br>
29 14 170<br><br>
30 15 2000<br><br>
32 15 200<br><br>
31 16 80<br><br>
17 1200 600<br><br>
表:matrequest
id matid matname mquantity<br>
1 15 Ceramic Tiles 300<br><br>
2 15 Ceramic Tiles 300<br><br>
这是我的代码:
$query=mysql_query("SELECT a.productid, sum(a.quantity), b.serial, b.name, sum(mquantity)
FROM order_detail a
left join products b on a.productid = b.serial
left join matrequest c on b.serial = c.matid group by b.name")or die(mysql_error());
while($row=mysql_fetch_assoc($query)){
结果:
ID Material Name Order Quantity Quantity Used Quantity at Hand<br>
15 Ceramic Tiles <b>4400 1200 3200</b> <br><br>
14 Doors 170 0 170<br><br>
16 Granite 80 0 80<br><br>
17 Iron Rods 1200 0 1200<br><br>
假设是
ID Material Name Order Quantity Quantity Used Quantity at Hand<br>
15 Ceramic Tiles <b>2200 600 1600</b> <br><br>
14 Doors 170 0 170<br><br>
16 Granite 80 0 80<br><br>
17 Iron Rods 1200 0 1200 <br><br>
提前感谢您的协助
最佳答案
编辑:进一步评论后的第二次尝试:
SELECT
a.productid,
sum(a.quantity),
b.serial,
b.name,
(SELECT SUM(mquantity) FROM matrequest c WHERE c.matid = b.serial)
FROM
order_detail a
LEFT JOIN
products b
ON a.productid = b.serial
GROUP BY
b.name
关于php mysql 连接三个表并对相同id的项求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250097/