如何对新查询使用“选择查询结果(数组)”并显示每个值的结果?

时间:2019-04-23 14:02:10

标签: php mysql

我想从一个表中获取项目名称,并使用该名称通过另一张表中的名称来计算值。

  1. 我正在使用选择查询来获取结果行:
SELECT itemname FROM tablename
  1. 我想一个个地使用结果数组或数组值来运行下一个查询。
    SELECT SUM(quantity) as inward FROM inward_details WHERE item_name='$itemname'

有3张桌子,

  1. 项目
  2. 内向
  3. 向外

我要做的是从带有选择查询的项目表中获取项目列表,然后从内部获取项目数量,从外部获取数量,然后从外部数量减去内部数量并回显结果。

例如,商品名称是钢笔,入库数量是20,出库数量是5, 然后我想将结果显示为笔15(20-5)

但是我希望它用于项目表中的所有项目。

2 个答案:

答案 0 :(得分:0)

使用LEFT JOIN,只需一个查询即可获得所需的结果:

SELECT t.itemname, 
       COALESCE(SUM(i.quantity), 0) AS inward,
       COALESCE(SUM(o.quantity), 0) AS outward,
       COALESCE(SUM(i.quantity), 0) - COALESCE(SUM(o.quantity), 0) AS movement
FROM tablename t
LEFT JOIN inward_details i ON i.item_name = t.itemname
LEFT JOIN outward_details o ON o.item_name = t.itemname
GROUP BY t.itemname

我们使用LEFT JOIN,因此如果没有与项目关联的inward_details行,我们仍会获得一行,而我们COALESCE SUM则使{ {1}}在这种情况下的结果为0。

答案 1 :(得分:0)

您可以在HTML中使用隐藏的输入,并在whilefor循环内使用行值,这意味着输入将不会在浏览器中显示。使用后端代码(PHP),您可以轻松执行数学计算并继续进行插入。希望这会有所帮助:-)