SELECT SQL_CALC_FOUND_ROWS r.*,er.name as race_name,er.date as race_date,e.name as event_name,c.id
as id,r.id as res_id,IF(r.rank > 0, r.rank, '') as rank,c.*,YEAR(c.born) as year,cat.code as
category_code, cat.name as category_name,rt.code as track_code,s.bib as bib, r.race_id as race_id 
FROM timing_startlist s 
LEFT JOIN results r ON r.competitor_id = s.competitor_id 
LEFT JOIN competitors c ON c.id = s.competitor_id 
LEFT JOIN races er ON er.id = r.race_id 
LEFT JOIN events e ON e.id = er.event_id 
LEFT JOIN categories cat ON cat.id = IF(s.category_id>0,s.category_id,c.category_id) 
LEFT JOIN races_tracks rt ON rt.id = r.race_track_id 
LEFT JOIN tracks t ON rt.track_id = t.id 
WHERE (`s`.`category_id` = 7604) AND (`s`.`race_id` = 1504) AND (s.bib> 0) 
ORDER BY s.bib,IF(`r`.`rank`>0,1,99999),t.length/r.time