首页 文章

求和并加入多个MySQL表

提问于
浏览
0

美好的一天,我有三个mysql表交易,other_loan和付款 . 我想对表事务中的列load_amount和其他值进行求和,并将其与other_loan中的列值相加,并将其减去支付表中列payment_amount的总和 . 以下是我的代码:

$result = $db->query("
SELECT *
     , (sum(load_amount) + sum(additional) + sum(amount)) - sum(payment) as total 
  FROM transaction
     , other_loan
     , payment
  INNER JOIN client 
    ON client.id=transaction.id 
  INNER JOIN other_loan 
    ON other_loan.id=transaction.id 
  INNER JOIN payment 
    ON payment.id=transaction.id 
 INNER GROUP 
    BY client.id
  ");

这是我的表:transaction other_loan payment

我在表中显示结果,我有这个错误信息:

致命错误:未捕获错误:在布尔值上调用成员函数fetch_assoc()

请帮忙 . 谢谢 .

1 回答

  • 0

    您的查询失败(因此 $result 是布尔 false )因为您有 JOIN ed表 other_loanpayment 两次(第一次使用隐式 JOIN 运算符 , )而没有别名 . 我怀疑你实际上并不想这样做,而你的查询应该是这样的:

    $result = $db->query("SELECT *, (SUM(load_amount) + SUM(additional) + SUM(amount)) - SUM(payment) as total 
                          FROM transaction
                          INNER JOIN client ON client.id=transaction.id 
                          INNER JOIN other_loan ON other_loan.id=transaction.id 
                          INNER JOIN payment ON payment.id=transaction.id
                          GROUP BY client.id");
    

    我也怀疑 load_amount 实际应该是 loan_amount .

相关问题