select course_id, course_name, sum(TIME(in_datetime) <= '19:00:00') as online_num
from (
    select a.course_id, b.course_name, a.user_id, a.in_datetime, a.out_datetime
    from attend_tb as a
    left join course_tb as b
    on a.course_id = b.course_id
) as c
group by course_id, course_name
order by course_id;