Můžete fake
chybějící sloupce pomocí aliasu - např.
SELECT username, email, '' as name FROM `table1`
UNION
SELECT username, email, name FROM `table2`
WHERE username = 'user1';
kde název je v tabulce2, ale ne v tabulce1
Pokud si nepletete UNIONS s JOINS:
SELECT table1.*, table2.* FROM
table1 INNER JOIN table2
ON table1.username = table2.username
to by sloučilo obě tabulky, takže získáte všechny sloupce na stejném řádku.