Home Chi sono Mappa del sito Contatti  
 
Java
Apache Wicket
Sistemistica Totocalcio
 
 
Programmare Applicativi...
Presentazione del libro
Panoramica dei contenuti
 
 
Giochi in PHP
Introduzione
Filetto (Tris)
Forza 4
Sudoku
 
 
Tutorial Linux/Unix
Archivio
 
 
Sql
Tutorial su Mysql
 
 
C++
Framework a oggetti
 
Tutorial su Mysql->Sub-query

Sub-query

Una subquery è una query situata all'interno di una interrogazione. Se una query restituisce una tabella, essa può sostituire una tabella in una interrogazione, se invece restituisce un valore allora può sostituire un campo. Per vedere alcuni esempi, prendiamo in esame le seguenti tabelle

Tabella cliente
idragione
1Bricolage
2Il paradiso della brucola
3Da Mario
4Da Paolo
5XYZ
6Colori
Tabella articolo
iddescrizionescorta_fisicascorta_sicurezzaid_categoria
1Articolo 2B10152
2Articolo 1A1051
3Articolo 2B22102
4Articolo 3C1453
5Articolo 3C2053
6Articolo 2B3082
Tabella categoria_merciologica
idnome
1Categoria A
2Categoria B
3Categoria C

Tabella ordine_cliente_dettaglio
idid_ordinerigoid_articoloqta_ordinataqta_evasaprezzo
11111115
21222215
32131115
43112215
54141116
64251020
75121115
85212115
95362012
106152020
117151020
128141116
138211015
149122115
1510161012
1610222115
Tabella ordine_cliente
iddata_ordineid_clientenr_ordine
114/01/200811
214/01/200832
315/01/200833
415/01/200844
516/01/200855
616/01/200866
716/01/200817
817/01/200828
918/01/200839
1018/01/2008410


Partiamo con query semplice: totale importo ordinato per cliente

Volendo riscrivere la query precedente utilizzando le subquery, otteniamo:

In entrambi i casi abbiamo il seguente risultato
ClienteTotale
Bricolage45
Il paradiso della brucola20
Da Mario76
Da Paolo66
XYZ69
Colori28


Applicando lo schema visto in precedenza proviamo a scrivere una query che calcoli:
  • Totale importo ordinato;
  • Totale importo evaso (si intende la valutazione delle merce consegnata);
  • Totale importo da evadere (si intende la valutazione delle merce da consegnare);
  • Varietà della tipologia di articoli (ovvero quanti articoli diversi);
  • Categoria merciologica più richiesta (intesa come quantità di pezzi ordinati).


Vediamo come calcolare separatamente ogni query
Iniziamo con il totale ordinato, evaso e da evadere

La prissima query può essere usata per calcolare la varietà degli articoli e la categoria merciologia più richiesta

Di seguito la varietà degli articoli

In questo altro esempio vediamo che la SubQuery è stata inserita in una colonna

Possiamo vedere un esempio di implementazione in codice PHP per richiamare la query


Di seguito il risultato della query
ClienteOrdinatoEvasoDa evadereVarietàCategoria
Bricolage454502Categoria A
Il paradiso della brucola200201Categoria C
Da Mario7661153Categoria B
Da Paolo663Categoria A
XYZ6930393Categoria B
Colori281Categoria C




Riepilogo