Se le tabelle hanno numero di colonne diverse l'union da errore (non so se succede anche se hanno nomi diversi).
Ma se invece di fare un unica query ne fai 4 divise? e Poi con 4 while ti fai l'output(lo so può sembrare ripetitivo, ma non essendo esperto di union lo risolverei in questo modo).

P.S. Se quel <select id="end"> sta dentro il while ne stamperai tanti quanti sono gli option, quindi non ti funzionerò l'html, devi mettero prima del while.