codice:
select substring_index(line,'-',1) as radice,count(substring_index(line,'-',1)) as quanti from (
select line from tabella_a
union all
select line_mt from tabella_b
) as tab
group by radice
having quanti > 3
P.S. Se hai inserito le "date" in quel modo sono stringhe e come tali verranno trattate.