繁体   English   中英

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

[英]How can I multiply a result by a specific value from another table?

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

供应:

  • supplyName:VARCHAR(20),仅是办公用品的名称。 说笔。
  • quantityPerBox:INT,一个盒子中的供应品编号。

盒:

  • supplyName:VARCHAR(20),供应名称,引用了供应表。
  • numBoxes:INT,货源的箱数。

基本上我想做的是:

SELECT supplyName, numberOfSupply GROUP BY supplyName

从这些表。 但我希望numberOfSupply是quantityPerBox * numBoxes。

可以作为查询吗? 还是我需要以某种语言(例如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而不是表中的值来引用表,则不必担心外键问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM