select
    user_id
    from
    (
        select
            user_id,
            if(lead(log_date) over (PARTITION BY user_id ORDER BY log_date) - log_date = 1, 1, 0) as d
        from
            (
                select
                    user_id,
                    date(log_time) as log_date
                from
                    register_tb
                    join login_tb using (user_id)
                where
                    reg_time is not null
                group by
                    user_id,
                   log_date
                order by
                    user_id
            ) t
        order by
            user_id
    ) t1
    group by user_id
    having sum(d) >= 2

那些写连续登陆问题喜欢用表自连接的真的上点心吧……连续三天登陆你的代码或许尚且可以运行,要是让你查个连续三十天登陆的,你联三十次表嘛?写代码别总想着应试教育那一套,用例过了不代表实际工作中能这么干,现实里你那么写是很危险的,三十次自连接,数据库分分钟瘫痪给你看