user表 uid uname
orderA 表 uid pay_type amount
orderB 表 uid pay_type amount
现在要统计 每个用户的 A类订单 和B类订单的 总金额 (条件是 pay_type=1)
现在 写的 sql 如下
select user.uid,sum(case when orderA.pay_type=1 then orderA.amount else 0) A订单总支付金额
left join orderA on orderA.uid = user.uid
这种情况结果是正确的
但是如果在后面再进行关联第二个表 则会出现统计异常
如下
select user.uid,sum(case when orderA.pay_type=1 then orderA.amount else 0) A订单总支付金额
left join orderA on orderA.uid = user.uid
left join orderB on orderB.uid = user.uid
但是因为还要关联查询oderB 的字段 所以第二个关联是必要的
请问这种情况该如何解决呢
思路大概是这样,通过union all 查询出来,再用uid去查询用户表,就可以查询到用户信息