(SELECT tournament.enetSeasonID, tournament.name, tournament_stage.id, TO_DAYS(NOW()) - TO_DAYS(event.startdate) as DAYDIFFERENCE FROM event, tournament_stage, tournament, tournament_template WHERE event.tournament_stageFK = tournament_stage.id AND tournament_stage.tournamentFK = tournament.id AND tournament.tournament_templateFK = tournament_template.id AND tournament_template.sportFK = 1 AND tournament_stage.enetID = AND event.startdate < NOW() ORDER BY event.startdate DESC LIMIT 1) UNION (SELECT tournament.enetSeasonID, tournament.name, tournament_stage.id, TO_DAYS(event.startdate) - TO_DAYS(NOW()) as DAYDIFFERENCE FROM event, tournament_stage, tournament, tournament_template WHERE event.tournament_stageFK = tournament_stage.id AND tournament_stage.tournamentFK = tournament.id AND tournament.tournament_templateFK = tournament_template.id AND tournament_template.sportFK = 1 AND tournament_stage.enetID = AND event.startdate > NOW() ORDER BY event.startdate ASC LIMIT 1) ORDER BY DAYDIFFERENCE LIMIT 1 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 'AND event.startdate < NOW() ORDER BY event.startdate DESC LIMIT 1' at line 8