Ho trovato questa soluzione... ma non vorrei fosse troppo esosa, che mi dite?

Codice PHP:
UPDATE gestionale_ordini_emessi
SET 
imponibile
=(SELECT SUM(p1FROM (SELECT SUM(costo_spedizione+costo_altro) AS p1 FROM gestionale_ordini_emessi WHERE id_ordine=1 UNION SELECT SUM(prezzo) AS p1 FROM gestionale_ordini_materiale WHERE id_ordine=AND _FINE=1) AS tab_ordini) ,
imposte=(SELECT SUM(p2FROM (SELECT SUM(tasse_spedizione+tasse_altro) AS p2 FROM gestionale_ordini_emessi WHERE id_ordine=1 UNION SELECT SUM(val_tasse) AS p2 FROM gestionale_ordini_materiale WHERE id_ordine=AND _FINE=1) AS tab_ordini) ,
totale=(SELECT SUM(p3FROM (SELECT SUM(totale_spedizione+totale_altro) AS p3 FROM gestionale_ordini_emessi WHERE id_ordine=1 UNION SELECT SUM(tot) AS p3 FROM gestionale_ordini_materiale WHERE id_ordine=AND _FINE=1) AS tab_ordini
WHERE id_ordine=
devo rifare le select 3 volte... mentre prima ne facevo una al volo con i 3 risultati