Mysql 如何将结果乘以另一个表中的特定值?

Mysql 如何将结果乘以另一个表中的特定值?,mysql,Mysql,我问题的简化。假设我有这些桌子: 供应: supplyName:VARCHAR(20),只是办公用品的名称。说钢笔 quantityPerBox:INT,一个盒子中供应的数量 方框: supplyName:VARCHAR(20),供应的名称,引用供应表 numBoxes:INT,供应的箱子数 基本上我想做的是: SELECT supplyName, numberOfSupply GROUP BY supplyName 从这些桌子上。但我希望numberOfSupply是quantity

我问题的简化。假设我有这些桌子:

供应:

  • supplyName:VARCHAR(20),只是办公用品的名称。说钢笔
  • quantityPerBox:INT,一个盒子中供应的数量
方框:

  • supplyName:VARCHAR(20),供应的名称,引用供应表
  • numBoxes:INT,供应的箱子数
基本上我想做的是:

SELECT supplyName, numberOfSupply GROUP BY supplyName
从这些桌子上。但我希望numberOfSupply是quantityPerBox*NumberOxes

这可以作为一个查询来完成吗?或者我需要用某种语言(例如PHP)将供应表中的数量存储在程序中并在那里进行计算吗?(或者将计算作为查询的一部分真的没有好处吗,即使这是可能的?)


提前谢谢你的帮助。非常感谢。

这当然可以在查询中完成,而无需单独存储该值,或使用其他语言:

SELECT s.supplyName, s.quantityPerBox * b.numBoxes AS NumberOfSupply
FROM Supply AS s
INNER JOIN Boxes AS b ON s.supplyName = b.supplyName

您可能希望将
SupplyId
添加到这两个表中,但这样您就有了一个整数值要
JOIN
打开:比在
VARCHAR
字段上尝试
JOIN
更有效。另一个好处是,如果您曾经想要更改项目的
supplyName
,那么如果您是通过ID而不是表中的值引用表,那么在进行更改时就不必担心外键问题。

啊,我现在明白了。和往常一样,我想得太多了。非常感谢你为我指明了正确的方向。我让它工作了。