Newsgroup: it.comp.www.asp
Titolo: Query su query

ASPizzo da poco, e ho una domandina cui voi guru certamente saprete
rispondere. So gia' come aprire un database (DSN-less) ed effettuare una
query tipo "SELECT quellochemipare FROM dovedicoio", ottenendo un recordset.
Domanda: come si fa ad effettuare una seconda query su QUESTO recordset?
TIA
Alx

 ha scritto nel
messaggio news:9coq8q$51l$1...@pegasus.tiscalinet.it...

utilizzi la clausola IN:
SELECT secondoquellochemipare FROM dovedicoio WHERE campo IN (SELECT
quellochemipare FROM dovedicoio)
cioè fai una query all'interno di un'altra query con la clausola IN
ciao
--
Kappa
kappa**nospam**@
webngo.net
www.webngo.net

 cioè fai una query all'interno di un'altra query con la clausola IN
Cosi' pero' la prima query (quella contenuta nella clausola where) viene
eseguita n volte (tante quante sono i record estratti con la query madre).
Insomma....si pianta!
In effetti vorrei anch'io sapere il modo di fare una select su una query,
quello che in Access si fa salvando la prima query, ossia SELECT * FROM
miaQuery.
Saluti.
Luciano

 ha scritto nel messaggio
news:9couug$f46pj$1...@ID-86073.news.dfncis.de...

Sicuro? Da quello che so io viene effettuata prima la query all'interno
della clausola IN e poi la query esterna sui risultati della prima.
Qualcuno la sa in un altro modo?


 della clausola IN e poi la query esterna sui risultati della prima.
Ovviamente si (sono sicuro:-)!
Tu l'IN SELECT lo metti in un WHERE che e' una verifica sul record percio'
viene ripetuta singolarmente per ognuno di essi.
Saluti.
Luciano

> La query che viene eseguita per prima è la più interna, perchè è questa
che fornisce i dati a quella di livello superiore.
-----------------------
Da questo io capisco che prima viene eseguita la query interna (1 sola
volta) che poi viene utilizzata per il WHERE
Non è così?


 Non è così?
Si, dal tuo libro sembrerebbe cosi'...
Ho cercato sul mio manualozzo SQL al paragrafo subquery correlate ma non
dice nulla in proposito.
La mi esperienza e' che IN SELECT pianta la query specie se la subquery e'
molto complessa. Il che non dovrebbe essere secondo il tuo manuale in quanto
una volta ottenuto il set di record la cosa e' fatta.
Che libro e'?
Saluti.
Luciano

 Che libro e'?
Imparare in 6 ore SQL  -  Tecniche nuove  -  Riccardo Cervelli
Ho mandato una mail anche all'autore. Non appena risponde ti faccio sapere
:-)


Dai il nome alla subquery:
select sq.campo1, sq.campo2 from
(select campo1,campo2 from ....) sq

 (select campo1,campo2 from ....) sq
In che senso, potresti spiegarti meglio?


:-)
Sperando che l'autore non abbia imparato a sua volta in 6 ore....:-))
Saluti.
Luciano

:-)


:-)


:-)


:-)


:-)


:-)


:-)


:-)


:-)


:-)


Chiedo scusa per questi doppi post.....succedono solo quando uso il news
server di mclink e solo con questo NG.
Ne ignoro il motivo, il timeout del newsreader e' alto.
Il fatto e' che i post vengono rifiutati dal server (ricevo un messaggio
d'errore) e quindi rispediti automaticamente. Ma in realta' erano stati
accettati...
Saluti.
Luciano

Al posto del nome della tabella nella clausola FROM si puņ inserire una
qualsiasi query (o x queries), basta racchiuderla tra parentesi e assegnarle
un nome a cui riferirsi per estrarre i dati in select, come nell'esempio che
ti ho indicato: alla subquery dai il nome sq e puoi estrarre i dati come se
fosse una tabella.

Se la cosa non e' molto complicata puoi applicare la proprieta' "filter" al
recordset che ti sei generato e visualizzare solo i record che ti
interessano.
Sempre se ho ben capito,
Pierpaolo

 fosse una tabella.
A me non funziona ne' con Access ne' con MySQL....
Ho anche provato ad aggiungere un AS prima del nomequery.
Saluti.
Luciano

sql7 funziona correttamente, access e mysql mai provato.