SELECT DISTINCT user_id FROM ( SELECT user_id, DATE_SUB(t2.log_day, INTERVAL t2.ranking DAY) date2 FROM ( SELECT user_id, log_day, ROW_NUMBER() OVER ( PARTITION BY t1.user_id ORDER BY t1.log_day ) ranking FROM ( SELECT DISTINCT l.user_id, LEFT (log_time, 10) log_day FROM login_tb l, register_tb r WHERE l.user_id = r.user_id ) t1 ) t2 ) t3 GROUP BY user_id, date2 HAVING COUNT(*) >= 3