mi pare che sia una tabella molto dispersiva e con parecchi dati duplicati.
Andrebbe rivista la struttura del db. Per quanto riguarda le scelte da fare con la query bisognerebbe conoscere meglio il progetto. Una cosa e' l'inserimento, ma un'altra la ricerca dei dati. Parti alla gambero... valuta le cose che devi estrarre ed imposta la struttura per farlo facilmente.
Se poi si tratta di eventi da sottoporre ad uno specifico user basta estrarre tutti gli elementi (non scaduti) e presentarli ordinati a scelta dell'utente stesso. Non ha senso una query come quella che hai postato solo per presentare i dati in un certo ordine.
Se non riesci ad ordinarli come vuoi rivedi la struttura finche' potra' darti una risposta di ordinamento soddisfacente. oppure separa la query in richieste singole.