Puoi fake
le colonne mancanti utilizzando un alias, ad es.
SELECT username, email, '' as name FROM `table1`
UNION
SELECT username, email, name FROM `table2`
WHERE username = 'user1';
dove il nome è nella tabella2, ma non nella tabella1
A meno che tu non stia confondendo UNIONS con JOINS:
SELECT table1.*, table2.* FROM
table1 INNER JOIN table2
ON table1.username = table2.username
questo unirebbe entrambe le tabelle, in modo da ottenere tutte le colonne sulla stessa riga.