Salve, ho un problema con una query..

codice:
SELECT * FROM tabella1 WHERE tabella1.riferimento='".$id_utente."' 
GROUP BY tipo_azione
UNION SELECT * FROM tabella2 WHERE tabella2.id_utente1='".$id_utente."'
ORDER BY data_post DESC;
La query prende record da due tabelle e li ordina per data_post DESC (campo prensente in entrambe le tabelle).
Ora della prima Select siccome posso avere record duplicati ma con campo data_post diversi, mi servirebbe prendere dei record duplicati l'ultimo inserito ( con data post più recente).

Mentre così come l'ho postata la query prende il primo record dei duplicati (quindi il primo inserito) e non l'ultimo, l'order by finale lo fà dopo il GROUP BY giustamente.

Come posso risolvere questo problema?

Grazie a chi può aiutarmi