mysql è conforme allo standard del linguaggio sql quindi dovresti poter fare tutto
di with non ne so nulla ma di union son sicurissimo che puoi usarlo
x quest'ultimo le tabelle le cui query devi unire devono avere la stessa struttura (nome e tipo di records)
poi puoi fare
SELECT * FROM tabella1 A
UNION
SELECT * FROM tabella1 B union
al posto di union puoi anche mettere UNION ALL che permette di ripetere dei record assolutamente identici