【问题标题】:get the sum of column rows after a mysql JOIN query在mysql JOIN查询后获取列行的总和
【发布时间】:2012-11-01 03:46:18
【问题描述】:
$r1 = mysql_query("
SELECT *, SUM(bps.price) as sum FROM accounts 
FULL JOIN bps on bps.id = mid
");
echo "Total price: ".$row['price']."<br>" ;
    while($row = mysql_fetch_array($r1))
      {
      echo $row['name']." <b>:::</b>  ".$row['mid']." <b>:::</b>  ".$row['price'];
      echo "<br />";
      }

这是我的查询。我需要得到列的总数(总和):bps.price 有些行有: 10.5 ,其他 -5.5 等...换句话说,有些是负值,有些是正值。它将列出所有结果,然后在最后显示列价格的总和。

【问题讨论】:

  • 您在运行查询之前就意识到自己正在尝试回显一行?
  • 哦,对不起。我把它移到了底部,谢谢 Marc

标签: php mysql sql


【解决方案1】:

这是否如您所愿?我不确定哪些列属于哪些表,只需根据需要编辑表名(a / b)...

$r1 = mysql_query("
SELECT *, sum(a.price) as sum FROM accounts as a 
FULL JOIN bps as b on a.mid = b.id
");
echo "Total price: ".$row['sum']."<br>" ;
    while($row = mysql_fetch_array($r1))
      {
      echo $row['a.name']." <b>:::</b>  ".$row['a.mid']." <b>:::</b>  ".$row['a.price'];
      echo "<br />";
      }

【讨论】:

  • 这不起作用它返回 1 行就价格而言。我正在考虑将所有总和值存储在一个数组中并使用 php 执行 array_sum ...我认为应该这样做
【解决方案2】:
select sum(bps.price) FROM accounts a
FULL JOIN bps on bps.id = a.mid

这样会行,对吧?它将正负值相加,没关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 2019-04-29
    • 2022-07-07
    • 1970-01-01
    相关资源
    最近更新 更多