我正在尝试选择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中)。
答案 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;