Aller simple
SELECT *,1 as SortOrder FROM table1
UNION
SELECT *,2 FROM table2
UNION
SELECT *,3 FROM table3
UNION
SELECT *,4 FROM table4
order by SortOrder
ce qui se passe, c'est que vous utilisez UNION, le serveur sql rend alors le jeu de résultats distinct, pour ce faire, il doit trier les tables
Est-ce que UNION ALL
faire la différence ?