簡體   English   中英

PHP的MySQL加入三個表和總和相同的ID

[英]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

查看更新的SQL Fiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM