Salve a tutti,
volevo chiedere se potevate autarmi migliorare questa query:
codice:SELECT DISTINCT tab1.campo1, tab2.campo2, task.campo3, somma1, somma2 FROM ( tab1 LEFT JOIN task ON tab1.task_idtask = task.id ) LEFT JOIN tab2 ON tab1.task_idtask = tab2.task_id LEFT JOIN (SELECT task_id, SEC_TO_TIME(SUM(TIME_TO_SEC(`tempo_lavorato`))) AS somma1 FROM tab2 GROUP BY task_id) A ON (A.task_id = tab1.task_idtask) LEFT JOIN (SELECT task_id, SEC_TO_TIME(SUM(TIME_TO_SEC(`tempo_lavorato`))) AS somma2 FROM tab2 WHERE tab2.user=5 GROUP BY task_id) B ON (B.task_id = tab1.task_idtask)
Il database che sto usando è MYSQL. La query funziona perfettamente, però vorrei cercare di ottimizzarla se possibile. Le prime 2 join sono necessarie perchè devo usare campi sia di tab1 sia di tab2 sia di task, mentre le ultime 2 mi servono per avere (per ogni record uscito dalle prime 2 JOIN) la SOMMA di un campo time presente in tab2.
Ho anche preso in considerazione le VISTE però la tabella risultante da questa query deve essere modificabile quindi mi servirebbero VISTE AGGIORNABILI che purtroppo non supportano
JOIN, UNION o altri FROM (inclusa la clausola DISTINCT).
Avete qualche idea?
Spero di essere riuscito a spiegarmi, se avete altre domande chiedete pure..
Grazie mille

Rispondi quotando