select
t.user_id as user_id
from
(select
l.user_id,
date(l.log_time) as log_day,
row_number() over(partition by l.user_id order by date(l.log_time) desc) as timerank,
date_sub(date(l.log_time),interval (row_number() over(partition by l.user_id order by date(l.log_time) desc)) day) as base_day
from 
login_tb l left join register_tb r
on l.user_id=r.user_id
where r.user_id is not null) t
group by t.user_id
having count(t.base_day)>=3
order by t.user_id asc;