【问题标题】:How to use Select query result (array) to the new query and display result for each value?如何使用 Select 查询结果(数组)到新查询并显示每个值的结果?
【发布时间】:2019-04-25 21:26:56
【问题描述】:

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

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

有3张桌子,

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

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

例如项目名称是笔,进货数量是 20,出货数量是 5, 然后我想将结果显示为 pen 15 (20-5)

但我想要它用于项目表中的所有项目。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用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 以便NULL 针对这种情况的结果导致一个 0 值。

      【讨论】:

      • @DigvvijayZiite 我已根据您对问题所做的更改更新了我的答案。请让我知道这是否满足您的需求。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 2021-02-16
      • 1970-01-01
      相关资源
      最近更新 更多