You can try to use CROSS JOIN + WHERE instead.
SELECT * FROM table1 t1 CROSS JOIN table2 t2 WHERE t1.id = t2.id and t1.date >= t2.valid_from_date and t1.date < t2.valid_to_date