EXISTS ( SELECT 1 FROM tcm_live_reserve rr WHERE rr.session_id = w.session_id AND rr.app_user_id = w.app_user_id AND rr.is_cancel = 0 AND rr.reserve_time w.watch_start ) w.id, w.live_course_id AS courseId, w.session_id AS sessionId, w.app_user_id AS userId, u.nickname AS userNickname, u.phone AS userPhone, u.avatar AS userAvatar, cl.name AS clinicName, CASE WHEN cl.province_name IS NOT NULL AND cl.province_name != '' THEN CONCAT( cl.province_name, IFNULL(cl.city_name, ''), IFNULL(cl.district_name, '') ) ELSE NULL END AS clinicArea, c.title AS courseTitle, NULL AS categoryName, s.start_time AS startTime, CASE WHEN THEN 1 ELSE 0 END AS hasReserve, w.watch_start AS watchStart, w.watch_end AS watchEnd, w.duration_seconds AS durationSeconds, w.is_completed AS isCompleted, w.is_effective AS isEffective FROM tcm_live_watch_record w INNER JOIN tcm_live_course c ON c.id = w.live_course_id AND c.deleted = 0 INNER JOIN tcm_live_session s ON s.id = w.session_id AND s.deleted = 0 LEFT JOIN tcm_app_user u ON u.id = w.app_user_id AND u.deleted = 0 LEFT JOIN tcm_clinic cl ON cl.id = u.clinic_id AND cl.deleted = 0 WHERE 1 = 1 AND w.live_course_id = #{courseId} AND w.session_id = #{sessionId} AND ( cl.province_code = #{regionCode} OR cl.city_code = #{regionCode} OR cl.district_code = #{regionCode} ) AND cl.name LIKE CONCAT('%', #{clinicName}, '%') AND u.phone LIKE CONCAT('%', #{phone}, '%') AND c.title LIKE CONCAT('%', #{courseName}, '%') AND AND NOT AND w.is_completed = #{isCompleted} AND w.is_effective = #{isEffective} AND w.watch_start =]]> #{watchFrom} AND w.watch_start #{watchTo}