Vous pouvez fake
les colonnes manquantes en utilisant un alias - par exemple
SELECT username, email, '' as name FROM `table1`
UNION
SELECT username, email, name FROM `table2`
WHERE username = 'user1';
où le nom est dans table2, mais pas dans table1
Sauf si vous confondez UNIONS avec JOINS :
SELECT table1.*, table2.* FROM
table1 INNER JOIN table2
ON table1.username = table2.username
cela fusionnerait les deux tables, de sorte que vous obteniez toutes les colonnes sur la même ligne.