将另一个表列的总和添加到查询中

时间:2016-03-25 00:56:58

标签: php mysql

我正在使用以下查询从数据库表中获取所有银行帐户(tb_bank_accounts)。 还有另一个名为tb_movements的表,我需要在查询中添加来自表tb_movements中所有记录的“收入”列的SUM作为新列,其中“bank”列等于查询中的列id_bank_account。 / p>

$query="SELECT * from tb_bank_accounts LEFT JOIN tb_currencies ON tb_bank_accounts.currency = tb_currencies.id_currency";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

$arr = array();
if($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $arr[] = $row;  
    }
}
# JSON-encode the response
$json_response = json_encode($arr);

// # Return the response
echo $json_response;

我想我应该使用另一个LEFT JOIN来做...

1 个答案:

答案 0 :(得分:1)

使用相关子查询可能最简单。像这样:

SELECT a.*, c.*,
       (SELECT SUM(m.income)
        FROM movements m
        WHERE m.bank_id = a.bank_id
       ) as income
from tb_bank_accounts a LEFT JOIN
     tb_currencies c
     ON a.currency = c.id_currency;