两个mysql表列的总和
我有两个mysql表:两个mysql表列的总和,mysql,join,sum,Mysql,Join,Sum,我有两个mysql表: table: loan -------------------------------------------------------- id | advance_id | loan_amount | deposit_amount | date -------------------------------------------------------- 1 | 22556678 | 5000 | 0 | 2015-02-06 2 | 22556678 | 500
table: loan
--------------------------------------------------------
id | advance_id | loan_amount | deposit_amount | date
--------------------------------------------------------
1 | 22556678 | 5000 | 0 | 2015-02-06
2 | 22556678 | 5000 | 0 | 2015-02-07
--------------------------------------------------------
table: advance
--------------------------------------------------------
id | advance_id | advance_amount | purpose | date
--------------------------------------------------------
1 | 22556678 | 20000 | purchase | 2015-01-30
2 | 22556678 | 10000 | purchase | 2015-01-31
我想从表:loan中获取“loan\u amount”的和,从表:advance中获取“advance\u amount”的和,在一个由内部联接连接的mysql查询中
如何从两个表的列中求和
SELECT
a.advance_id,
SUM(a.advance_amount) AS adv_amount,
a.purpose,
a.date,
SUM(l.loan_amount) AS loan_amount
FROM
advance AS a
INNER JOIN loan AS l
ON a.advance_id = l.advance_id
GROUP BY a.advance_id
HAVING SUM(l.loan_amount) - SUM(l.deposit_amount) > 0
您可以将查询重写为
SELECT
a.advance_id,
SUM(a.advance_amount) AS adv_amount,
a.purpose,
a.date,
l.loan_amount
FROM
advance AS a
INNER JOIN
(
SELECT advance_id,SUM(deposit_amount) AS loan_amount
FROM loan
GROUP BY advance_id
HAVING SUM(loan_amount) - SUM(deposit_amount) > 0
) AS l USING(advance_id)
GROUP BY a.advance_id
选择a.advance\u id,sum(a.advance\u amount)作为adv\u amount,a.purpose,a.date,sum(l.loan\u amount),sum(l.loan\u amount),sum(l.loan\u amount),sum(l.loan\u amount),sum(l.loan\u amount)作为内部联接贷款作为l ON a.advance\u id=l.advance\u id组,由a.advance\u id组成,sum(a.advance\u amount