select distinct user_id
from(
select user_id,
date_sub(date_format(log_time, '%Y-%m-%d'), interval dense_rank() over(partition by user_id order by date_format(log_time, '%Y-%m-%d')) day) as rnk
from login_tb
) t 
group by user_id, rnk
having count(*) >=3 
and user_id in (select user_id from register_tb)
order by user_id