You can try the following:
SELECT t1.TYPE, ifnull(t1.COUNT1,0) CountTable1, ifnull(t2.COUNT2,0) CountTable2 FROM (SELECT TYPE, COUNT(*) count1 FROM TABLE1 GROUP BY TYPE)T1 LEFT JOIN (SELECT TYPE, COUNT(*) count2 FROM TABLE2 GROUP BY TYPE)T2 ON t1.TYPE = t2.TYPE UNION SELECT t1.TYPE, t1.COUNT1, t2.COUNT2 FROM (SELECT TYPE, COUNT(*) count1 FROM TABLE1 GROUP BY TYPE)T1 RIGHT JOIN (SELECT TYPE, COUNT(*) count2 FROM TABLE2 GROUP BY TYPE)T2 ON t1.TYPE = t2.TYPE
See my working SQL Fiddle example.
source share