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



京公网安备 11010502036488号