我有三张桌子: super_consumers,balance_ins,充电
super_consumers表:
id name
---------- ----
1 A
2 Bbalance_ins表:
id super_consumer_id amount type(1,2)
--- ----------------- ------ ----
1 1 10 1
2 1 20 1
3 2 10 2再收费表:
id super_consumer_id amount status(0,1)
--- ----------------- ------ ------
1 1 5 1
2 1 10 1
3 2 15 0我想得到每个super_consumers表的总量余额()和总充值()总量,如下所示,
的再收费表
预期结果:
[
'id' = 1,
'name' = 'A',
'total_balance_in' = 30,
'total_recharge' = 15
],
[
'id' = 2,
'name' = 'B',
'total_balance_in' = 0,
'total_recharge' = 0
]如何用“laravel查询”或“mysql”正确地编写此查询?
发布于 2021-09-22 20:05:45
尝试:
select super_consumers.id ,
super_consumers.name,
IF(tot_balance_amount IS NULL, 0 , tot_balance_amount) as tot_balance_amount,
IF(tot_recharge_amount IS NULL ,0, tot_recharge_amount) as tot_recharge_amount
from super_consumers
left join (select super_consumer_id,sum(amount) as tot_balance_amount
from balance_ins
where type='1'
group by super_consumer_id ) as a
on super_consumers.id=a.super_consumer_id
left join ( select super_consumer_id,sum(amount) as tot_recharge_amount
from recharges
where `status`='1'
group by super_consumer_id ) as b
on super_consumers.id=b.super_consumer_id;演示:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/44

https://stackoverflow.com/questions/69290205
复制相似问题