PDA

View Full Version : [SQL SERVER] Che senso ha questa query?


uomoserio
04-04-2012, 22:33
Ciao a tutti, studiando le subquery in SQL mi sono imbattuto in un esempio del quale non ho assolutamente capito l'utilità, il senso logico:

SELECT Name
FROM AdventureWorks.Production.Product
WHERE ListPrice =
(SELECT ListPrice
FROM AdventureWorks.Production.Product
WHERE Name = 'Chainring Bolts' )


Al di là dell'esempio fine a se stesso, che senso ha una query di questo tipo? Per quale scopo la si dovrebbe utilizzare? :confused:

Se non ho capito male, l'effetto è di ottenere una riga nel cui campo Name ci sarà il valore Chainring Bolts che però, appunto, io conosco già.
In pratica cerco il valore di un campo del quale conosco già il valore.
Quindi perché eseguire una query per trovare un valore che conosco già? :mc:

Scusate ma proprio non l'ho capito....qualcuno riesce a spiegarmelo?

wingman87
04-04-2012, 22:53
Premettendo che le query non sono utili per definizione (nel senso che essere utili non fa parte della loro definizione), quella query non restituisce necessariamente solo quel nome ma anche il nome di altri prodotti con lo stesso prezzo.

gugoXX
05-04-2012, 00:41
Esatto, restituisce tutti i nomi dei prodotti che costano esattamente come il prodotto che si chiama 'Chainring Bolts'

E se per caso ci fossero 2+ prodotti con tale nome, darebbe errore. (Bella query :) )

tomminno
05-04-2012, 09:12
E se per caso ci fossero 2+ prodotti con tale nome, darebbe errore. (Bella query :) )

Ci vorrebbe l' IN eventualmente :)
A meno che sul db il campo Name non sia Unique :D

uomoserio
05-04-2012, 19:10
Ma quanto sono rinco?? Avete ragione da vendere....per quanto mi sforzassi di capirla non riuscivo ad afferrare una cosa così semplice! :rolleyes:

Effetto della stanchezza? Troppo lavoro? Mah... :p

Grazie a tutti per la gentile risposta ;)