select t1.race_id,t1.time,t1.weight,t1.gate,t1.rating,t1.jockey_id, t1.position, t1.margin, IF(t1.position=1,(SELECT horse_id FROM racing_race2horse WHERE position=2 AND race_id = t1.race_id ) ,(SELECT horse_id FROM racing_race2horse WHERE position=1 AND race_id = t1.race_id )) AS horse_id, t2.start_ts, t2.type,t2.length,t2.safety,t3.name as race_title, t3.track_condition, t3.comments, t4.name as course_name, t4.floor, t5.name as jockey_name from racing_race2horse t1 LEFT OUTER JOIN racing_races t2 ON t1.race_id = t2.id LEFT OUTER JOIN racing_races_multilang t3 ON t1.race_id = t3.race_id AND t3.lang_id='en' LEFT OUTER JOIN racing_courses t4 ON t2.course_id = t4.module_id AND t4.lang_id='en' LEFT OUTER JOIN racing_jockeys t5 ON t1.jockey_id = t5.module_id AND t5.lang_id='en' where t2.start_ts>='1222812000' AND t2.start_ts<='1364684400' AND t2.status = 'Finished' AND t1.horse_id= ORDER BY start_ts DESC You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY start_ts DESC' at line 1