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

时间:2011-12-03 06:47:29

标签: mysql

简化我的问题。说我有这些表:

供应:

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

箱:

  • supplyName:VARCHAR(20),供应名称,引用Supply表。
  • numBoxes:INT,供应的方框数。

基本上我想要的是:

SELECT supplyName, numberOfSupply GROUP BY supplyName

从这些表中。但是我想numberOfSupply是quantityPerBox * numBoxes。

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

提前感谢您的帮助。很感激。

1 个答案:

答案 0 :(得分:1)

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

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的整数值:比在JOIN字段上尝试VARCHAR更有效。另一个好处是,如果您想要更改项目的supplyName,则在进行更改时,如果您按ID而不是表中的值引用表,则不必担心外键问题。 / p>