Om du har olika fält som också har olika betydelse, kan och bör du inte returnera dem i samma position. Du kan dock "fylla i tomrummen" genom att lägga till null i dina fält, så här:
select id, name, date, null as userid, 'A' as recordtype from table1
union all
select id, name, null /*as date*/, userid, 'B' as recordtype from table2
Du kan ange ett alias för null i det första valet. Du kan lägga till alias i den andra markeringen för tydlighetens skull, men den kommer inte att användas. Du kan till och med använda konstanta värden som du kan använda för att särskilja posttypen senare.