premetto che lo scrivo di getto, chiedo quindi scusa in anticipo per probabili imprecisioni, prendi il mio [eventuale] aiuto giusto come bozza su cui lavorare ...

la mia idea è che potresti prima fare la query con una union, poi mettere il risultato in un array, riordinarlo [se serve] per data decrescente o altre chiavi che preferisci e finalmente fare un bel loop sull'array per stampare il contenuto _riordinato_ sull'output html formattato come preferisci

esempio di query:

SELECT DATA, TITOLO, TESTO, '' AS AUTORE, '' AS SINOSSI
FROM TABELLAEVENTI
UNION
SELECT DATA, TITOLO, BIO AS TESTO, AUTORE, SINOSSI
FROM TABELLAEVIDEO
ORDER BY 1 DESC, 2, 3, 4, 5

questa union funziona però solamente se i campi TESTO e BIO sono di tipo identico (esempio varchar di 200 caratteri o roba simile)

spero ti sia utile questa bozza