【发布时间】:2019-04-20 08:07:07
【问题描述】:
我有两个表并在 customer_id 上加入它们。
第一个表是交易,我将交易数据存储在那里。而且每笔交易都有数量和休息,支付等。
第二个表是句柄,我很难解释这个表的用途,但句柄表是同一个交易表,它有 volume_handle、rest_handle、pay_handle 等。
我必须使用左连接,因为我想要交易表中的所有记录以及句柄表中的匹配记录
我想对交易量和余量求和,从句柄中求和volume_handle,这些表之间的关系是customer_id 和buy_id。
例如交易表:
id = 1
volume = 1000
rest = 1000
customer_id = 1
---------------
id = 2
volume = 500
rest = 0
customer_id = 1
---------------
id = 3
volume = 2000
rest = 0
customer_id = 2
句柄表是:
id = 1
volume_handle = 3000
buy_id = 1
我写的查询是:
select sum(deal.rest) as rest , sum(deal.volume) as volume , sum(handle.volume_handle) as handle
from deal
left join handle on deal.customer_id = handle.buy_id
group by deal.customer_id;
这个查询的结果是:
//when customer_id is 1
volume = 1500
rest = 1000
handle = 6000
//when customer_id is 2
volume = 2000
rest = 0
handle = null
体积和其余部分是正确的,但第二个表的句柄是错误的,因为 sum(handle.volume_handle) 的结果是 3000 而不是 6000(当 customer_id 为 1 时)
我不知道在加入表格之前如何使用聚合函数。
这里的任何人都可以为这个问题编写查询吗?
【问题讨论】:
标签: mysql sql codeigniter join aggregate