我需要结合这两个查询并使用单个mySQL查询获取记录。
这是我的查询
select DATE_FORMAT(campaign_date, '%Y-%m' ) AS month
, sum(sms)
from table1
group
by month
它返回我,所有月份的总和,例如
2019-05 5400
2019-06 3200
2019-07 11505
etc
我有另一个查询,它以相同的格式但从不同的表中获取数据。
select DATE_FORMAT(trans_date, '%Y-%m' ) AS month
, sum(camp_sms)
from table2
group
by month
2019-05 3500
2019-06 7256
2019-07 35465
etc
是否可以将这两个查询结合起来并获取如下所示的数据:
Date sum(sms) sum(camp_sms)
2019-05 5400 3500
2019-06 3200 7256
2019-07 11505 35465
我已经使用PHP循环和数组完成了此操作,并获得相同的输出,但我想使用mySQL来做到这一点。
只需使用join
select t1.month, t1.total, t2.total from (
select DATE_FORMAT(campaign_date, '%Y-%m' ) AS month, sum(sms) total from table1 group by month
) t1
join (
select DATE_FORMAT(trans_date, '%Y-%m' ) AS month, sum(camp_sms) from table2 group by month
) t2 on t1.month = t2.month
如果您不想跳过 table1 中的任何数据,那么您应该LEFT JOIN
类似地,您可以根据需要使用其他连接。