其实就是求开播时间有几个人在线。将开播时间转换成时间格式,比较用户进入直播间时间和开播时间即可。

select c.course_id,course_name,COUNT(DISTINCT 
IF(in_datetime <= DATE_FORMAT(course_datetime,'%Y-%m-%d %H:00:00'),user_id,NULL ))
from course_tb c 
left join attend_tb a 
on a.course_id=c.course_id
GROUP BY c.course_id,course_name
order by course_id