możesz użyć DATE_ADD()
funkcja dodawania dni do bieżącej daty, które pobierają ją przez NOW()
funkcja:
select count(table1.id), max(table2.date) from table1
INNER JOIN table2 ON table1.id = table2.id
group by table2.date
having DATE(table2.date) > DATE_ADD(NOW(), INTERVAL 30 DAY)