首页 > 解决方案 > 如何结合sql语句使其合二为一

问题描述

SELECT mem_id, sum(commission)
FROM `member_commission`
group by mem_id

第一个 sql 命令导致这个

SELECT mem_id, sum(crowdfund)
FROM `crowdfund`
group by mem_id

第一个 sql 命令导致这个

我想将这两个命令合二为一,然后按 mem_id 分组

+

我的两个表(member_commission,crowd fund)都有一个(datetime stamp - 记录日期和时间)列,它是 membecommission 中存在的时间列和众筹中的 distrbutedmonth ......我只想要本月的结果。 ..

datetime 列以这种格式记录日期和时间:2018-08-22 22:02:09

标签: sqlcommand

解决方案


一种方法使用union alland group by

select mem_id, sum(commission), sum(crowdfund)
from ((select mc.mem_id, mc.commission, 0 as crowdfund
       from member_commission mc
      ) union all
      (select cf.mem_id, 0, cf.crowdfund
       from crowdfund cf
      )
     ) x
group by mem_id;

这很棘手,因为成员可能在任一表中——并且可能您仍然希望它们出现在结果集中。


推荐阅读