MySQL SUM(成本)WHERE id = X.

时间:2012-01-05 12:15:15

标签: php mysql

我正在尝试选择ID与php整数匹配的行的SUM。

它正在转变我所有费用的总和,而不是特定于ID的费用。

$qry = mysql_query("SELECT SUM(myTable.myCostAmount) 
                    AS total, myOthertable.myOthertableID 
                    FROM myOthertable, myTable WHERE myOthertable.myOthertableID = '$myInt'");

所以我试图从myOtherTable中选择ID,并从myTable返回myCostamount的SUM。我需要在这里使用某种JOIN,因为SELECT似乎没有使用WHERE。

我考虑过使用foreach来避免这种混淆,我只想在ID = X的情况下对输出的结果进行求和。(存储在$ myInt中)。

3 个答案:

答案 0 :(得分:1)

您已经在使用连接,因为SQL中的FROM myOthertable, myTable是隐式连接。

但是,您需要的是一个显式连接,说明如何连接表。此外,您需要GROUP BY,因为否则聚合函数没有任何意义。

在不知道你的表格结构或关系的情况下,我无法给出确切的答案,但它将遵循:

SELECT SUM(myTable.myCostAmount) AS total, myOthertable.myOthertableID 
FROM myOthertable
LEFT JOIN myTable ON myTable.myOtherTableID = myOthertable.myOtherTableID
WHERE myOthertable.myOthertableID = '$myInt'
GROUP BY myTable.myOtherTableID

如果您包含表格结构(至少是相关列),以及相关信息,我可以编辑我对更精确解决方案的回复。

答案 1 :(得分:1)

SELECT
  SUM(myTable.myCostAmount) AS total,
  myOthertable.myOthertableID 
FROM 
  myOthertable
  INNER JOIN myTable ON myOtherTable.CommonField=myTable.CommonField
WHERE
  myOthertable.myOthertableID = '$myInt'

答案 2 :(得分:-1)

我已经使用PHP了。

$grandTotal += $total;