Usare le Common Table Expression in MySQL

Mattepuffo's logo
Usare le Common Table Expression in MySQL

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
  • email

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!


Condividi

Commentami!