Jeśli masz różne pola, które również mają różne znaczenie, nie możesz i nie powinieneś zwracać ich w tej samej pozycji. Możesz jednak „wypełnić puste miejsca”, dodając null do swoich pól, w ten sposób:
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
Możesz podać alias dla wartości null w pierwszym zaznaczeniu. Możesz dodać aliasy w drugim zaznaczeniu dla przejrzystości, ale nie będą one używane. Możesz nawet użyć stałych wartości, których możesz później użyć do rozróżnienia typu rekordu.