Usare le Common Table Expression in MySQL
Le Common Table Expression (CTE) sono dei result-set temporanei che esistono solo durante l'esecuzione della query, e ci permettono di assegnare un nome ad un insieme di risultati.
Fanno parte dello standard SQL, quindi esistono in tutti i db.
In questo articolo vediamo come usarle in MySQL.
Supponiamo di avere due tabelle diverse da loro.
Una tabella persone con questi campi:
- id
- nome
Una tabella attivita con questi:
- id_attivita
- fk_persona
- nome_attivita
E vogliamo eseguire una query prendendo i vari dati tutti insieme.
Possiamo fare così:
WITH
cte_persone AS (SELECT id, nome, email FROM persone),
cte_attivita AS (SELECT id_attivita, fk_persona, nome_attivita FROM attivita)
SELECT * FROM cte_persone JOIN cte_attivita;
Ovviamente questo è un esempio banale, ma supponiamo di inserire questa query in una Stored Procedure.
Avremmo diversi benefici anche in termini di velocità della query.
Enjoy!
database mysql cte with
Commentami!