On Sun, 19 Aug 2007, Davide Prina wrote: > Leonardo Boselli wrote: > scusa, forse sono io, ma dalla spiegazione che hai messo non capisco > quasi nulla.
se avessi capito bene anche io non avrei neppure postato la domanda. > Perché non fai un esempio semplice e capibile ... utilizzando dei valori > e indicando la struttura del db? (colonne, primary key, foreing key, > indici). Inoltre per le colonne è meglio utilizzare nomi comprensibili > al volo e non sigle. ti cambio i nomi: RID (indice, non usato) UserName GroupName BossLevel In nquesta tabella ogni riga contiene uno username e un gruppo (esattamente il cotento di /etc/groups, per inciso). Siccome ogni utente può appartenere a più di un gruppo e ogni gruppo può avere più membri ci possono essere piu` righe con gli stessi valori. quello che c'è di più è il BossLevel. Questo è un valore (intero) che indica se la persona è utente normale (1) responsabile (2) o supervisore (3) quello che voglio è dato un utente (Ub) avere la lista di tutti gli utenti che appartengono a gruppi di cui Ub fa parte ma che hanno un BossLevel minore o uguale a quello che Ub ha in quel gruppo esempio: RID UserName GroupName Bosslevel 1 Primo lazy 1 2 Primo big 3 3 Primo nerd 1 4 Secondo jim 1 5 Secondo nerd 1 6 Terzo jim 2 7 Terzo big 2 8 Quarto nerd 3 9 Quarto big 2 10 Quinto jim 3 11 Quinto nerd 2 12 Sesto jim 3 se Ub="Primo" mi ritorna Primo, Secondo (nerd[Secondo]<=nerd[Primo]), Terzo (big[Terzo]<=big[Primo]), Quarto (big[Quarto]<=big[Primo]) non mi ritorna invece Quinto in quanto nerd[Quinto]>nerd[Primo] e Primo non ha altri gruppi in comune con Quinto e Sesto. se scelgo secondo mi ritornerà oltre se stesso solo primo in quanto è l'unico che ha un gruppo (nerd) con bossleverl non superiore. terzo mi ritornerà secondo terzo e quarto quarto mi ritorna primo secondo terzo quarto quinto quinto invece primo secondo terzo quinto e sesto mente se gli do sesto avrò secondo terzo quinto e sesto >In generale puoi usare i costrutti > > select ... > from Tabella1 > where Tabella1.campo1 in( select ...) > > select ... > from Tabella1 as T1, (select ...) as T2 > where ... > > Ciao > Davide > > -- > Dizionari: http://linguistico.sourceforge.net/wiki > Sistema operativo: http://www.it.debian.org > GNU/Linux User: 302090: http://counter.li.org > Non autorizzo la memorizzazione del mio indirizzo su outlook > > >

