Homepage Site Map


   
PROGRAMMAZIONE
   FARE WEB
   HTML
   CSS
   PHP
   MySQL
   XML - XSL
GRAFICA
   PAINT SHOP
   ANIMATION SHOP
   SWISH
   SWISHMAX
SCRIPT
   JAVASCRIPT
   PHP
   APPLET JAVA
   CSS GENERATOR
   WEB TOOLS
DOWNLOAD
   FONTS
   ICONE E AVATAR
   SMILES
   GIF ANIMATE
   CURSORI
   CALENDARI
   KAOANI
   BASI BANNER
   SCREENMATES
   MEEGOS
   GIOCHI
   VIDEO E PPS
ARTICOLI
   ARTICOLI
   GUADAGNA SITO
LINKS
   LINK TO ME
   VOTAMI
   SCAMBIO LINK
   SCAMBIO BANNER


zanox Partner promuovono Partner

 
  

Home -> Manuali e Tutorials -> Guida MySQL Database -> Subquery MySQL  


Scarica il tutorial      |    Stampa il tutorial      |    Cerca nel sito      



Le subquery



Una subquery non è altro che una SELECT all'interno di un'altra istruzione. Le subquery possono essere nidificate a qualsiasi livello.
A differenza delle SELECT, che restituiscono una tabella formata da righe e colonne, le subquery possono restituire un valore singolo (scalare), una singola riga, una singola colonna, oppure una normale tabella.


La subquery come operando scalare

Il caso più semplice di subquery è quella che restituisce un singolo valore. La si può usare al posto di qualsiasi valore:


SELECT colonna1 FROM nome_tabella1
WHERE colonna1 = (SELECT MAX(colonna2) FROM nome_tabella2);


Questa query estrae i valori di colonna1 nella tabella nome_tabella1 che sono uguali al valore massimo di colonna2 nella tabella nome_tabella2.


Subquery che restituiscono colonne

Quando una subquery restituisce una colonna, può essere usata per fare confronti attraverso gli operatori ANY, SOME, IN e ALL:


SELECT s1 FROM nome_tabella1 WHERE s1 > ANY (SELECT s1 FROM nome_tabella2);


Questa query seleziona da nome_tabella1 i valori di s1 che sono maggiori di almeno 1 dei valori di s1 su nome_tabella2.


Subquery che restituiscono righe

Quando una subquery restituisce una singola riga, può essere usata per fare confronti attraverso i costruttori di righe:


SELECT colonna1,colonna2 FROM nome_tabella1
WHERE (colonna1,colonna2) IN (SELECT colonna1,colonna2 FROM nome_tabella2);


Questa query estrae le righe di nome_tabella1 in cui i valori di colonna1 e colonna2 sono ripetuti in una riga di nome_tabella2. L'espressione "(colonna1,colonna2)" è, appunto, un costruttore di riga.


Subquery correlate

Le subquery correlate sono quelle che contengono un riferimento ad una tabella che fa parte della query esterna:


SELECT * FROM nome_tabella1 WHERE colonna1 = ANY
(SELECT colonna1 FROM nome_tabella2 WHERE nome_tabella2.colonna2 = nome_tabella1.colonna2);


In questa subquery, la clausola WHERE contiene un riferimento alla tabella nome_tabella1, che tuttavia non è nominata nella clausola FROM della subquery stessa: la troviamo infatti nella FROM della query esterna.


Subquery nella FROM

E' possibile utilizzare una subquery anche nella clausola FROM, con questa sintassi:


SELECT ... FROM (subquery) AS nome ...


Notate che è obbligatorio assegnare un nome alla subquery, per poterla referenziare nelle altre parte della query.





Torna su      |    Indice Guida      |    Pagina << 11 >>    



 


Cynegi Network

Vai al W3C CSS Validator toolkit.
Realizzato con PHP. Vai al sito ufficiale del PHP.
Testato anche con Mozilla Firefox. Vai al sito ufficiale.

Home     Contacts     Forum     FAQ     Newsletter     Mappa     Cerca     Link to me

  Vedi gli RSS del sito.      

-->  [Il tuo link qui]