php-如何联接两个表,然后显示从另一个表收集的一个表的每个数据的总和

首先,对不起,如果我的问题标题听起来很蠢….我有下表.第一个表包含我的支出类型的名称,第二个表包含这些支出的金额和日期的信息.如果您注意到下面的第二个表,则有一个名为“ e_id”的字段,它是我从第一个表中支出的相应id值.

第一表名称:expense_type

  id     expense_name 

  1        Insurance
  2        Interest Payment
  3        Rent
  4        Electricity

 ... and goes on like this (unlimited perhaps :))

第二表名称:expense_details

 id       e_id    amount       date

  1        3      1000        2011-12-11 
  2        1       500        2011-12-19 
  3        4        10        2011-11-21
  4        3      1000        2012-01-12

... and goes on like this )

现在我的计划是从这两个表中获取所有值,并生成如下结果.但是由于第一个表的信息数量未知(对我而言),我不知道如何编写查询(包括php和mysql)来生成这样的结果.

请您帮我实现此目标?

提前致谢 :)

附注:仅供参考,我正在使用Codeigniter.

                                 **For the Month: January 2011**


           Insurance    :  1000

           Rent         :  3453

           Electricity  :   546

      Interest Payment  :   546    
  ---------------------------------
      **Total Expenses**: 938949 /// this value is just for an example

解决方法:

您可以在控制器或模型中执行此操作:

$sql = "SELECT a.*, b.expense_name FROM expense_details AS a, expense_name AS b WHERE a.e_id = b.id ORDER BY a.id ASC";
$data = $this->db->query($sql)->result_array();
$totals = array();

echo '**For the Month: January 2011**';
echo "\n\n";

foreach ($data as $item){
  $totals[$item['expense_name']] = isset($totals[$item['expense_name']]) ? $totals[$item['expense_name']] + $item['amount'] : $item['amount']: 
}

foreach ($totals as $name => $val){
  echo $name.': '.$val;
  echo "\n\n";
}

这不是最优雅或最稳定的方法,但我希望这可以帮助您了解需要做的事情.您可能还想按我想的月份分解总数.

上一篇:php-CodeIgniter的模型和属性


下一篇:PHP-一个SQL查询中的多个计数