Если в таблицах могут быть разные месяцы и , то вам нужны все строки, тогда вы действительно хотите full join
.MySQL не поддерживает это, но вы можете использовать union all
и group by
в этом случае:
SELECT yyyy, mon, SUM(s) - SUM(s2) as diff
FROM ((SELECT YEAR(tbl1_date) as yyyy,
MONTHNAME(tbl1_date) as mon,
SUM(col1+col2+col3+col4) as s1, 0 as s2
FROM myTbl1
GROUP BY YEAR(tbl1_date), MONTH(tbl1_date)
) UNION ALL
(SELECT YEAR(tbl2_date) as yyyy,
MONTHNAME(tbl2_date) as mon,
0, SUM(col1+col2+col3+col4) as s2
FROM myTbl12
GROUP BY YEAR(tbl2_date), MONTH(tbl2_date)
)
) ym
GROUP BY yyyy, mon;