[英]php mysql join three tables and sum item of same id
每個人都處於一定水平。 我有貨,我是MySQL的新手,需要幫助。
我試圖獲取要存儲的材料(建築物)的總和,並從商店中刪除材料的總和,這樣我可以得到商店中剩余的總材料,但是加入第三張桌子后,我得到了重復的結果。
這是我的桌子:
表:產品
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.