I'll re-iterate my answer to that question.
If you don't have duplicate key value (pairs) within a table (as in your sample data), then you can do this using union all
and group by
:
select filter_1, filter_2, max(data_1) as data_1, max(data_2) as data_2
from ((select filter_1, filter_2, data_1, NULL as data_2
from table1
) union all
(select filter_1, filter_2, NULL, data_2
from table2
)
) t
group by filter_1, filter_2;