Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Problema select
giovedì 18 dicembre 2008 - 16.22
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 18 dic 2008 - 16:22
ciao a tutti...ho un dubbio...
io devo fare una select che mi richiami x 2 volte da una stessa tabella lo stesso campo...solo che il valore richiamato non è detto che debba essere uguale...faccio un esempio...
mettiamo che ho una tabella chiamata utenti composta da id e nome e una seconda tabella chiamata acquisti composta da idacquisto, idutente e idutentepagato
idutente rappresenta l'utente che ha acquistato un prodotto
idutentepagato rappresenta l'utente che invece ha pagato il prodotto acquistato
quindi questi 2 non devono necessariamente essere la stessa persona (chiaro che è solo un esempio il mio)
entrambe sono relazionati con l'd della tabella utenti;
ora io voglio fare una select in modo da avere l'id dell'acuisto, l'id e il nome dell'utente che acquista e l'id e il nome dell'utente che paga:
SELECT acquisti.idacquisto, acquisti.idutente, utenti.nome, acquisti.idutentepagato, utenti.nome FROM acquisti INNER JOIN utenti ON acquisti.idutente=utenti.id
e l'utente che acquista è diverso dall'utente che paga.
facendo una query così però il nome dell'utente richiamato che acquista risulterebbe essere lo stesso di quello richiamato che paga giusto? in pratica utenti.nome risulterebbe uguale in tutti e 2 i campi? se si come dovrei modificare la query?
spero di essere stato chiaro
grazie ciao
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
gio 18 dic 2008 - 16:53
Sinceramente...penso che sia una bella gatta da pelare, però.....se posso darti un consiglio, fai costruire ad Access la tua SqlString creando lo scenario graficamente con il designer delle query e poi gli rubi la stringa creata da lui automaticamente.
Potrebbe(dico potrebbe) essere una soluzione.No????
bolla111
Profilo
| Senior Member
293
messaggi | Data Invio:
gio 18 dic 2008 - 17:19
uso sql server...cmq provo a seguire il tuo consiglio...
jenga
Profilo
| Newbie
44
messaggi | Data Invio:
gio 18 dic 2008 - 17:28
>ciao a tutti...ho un dubbio...
>io devo fare una select che mi richiami x 2 volte da una stessa
>tabella lo stesso campo...
>SELECT acquisti.idacquisto, acquisti.idutente, utenti.nome, acquisti.idutentepagato,
>utenti.nome FROM acquisti INNER JOIN utenti ON acquisti.idutente=utenti.id
o non ho capito la domanda, o basta usare gli alias di tabella:
SELECT acquisti.idacquisto,
acquisti.idutente,
ute_acq.nome,
acquisti.idutentepagato,
ute_pag.nome
FROM acquisti
INNER JOIN utenti as ute_acq ON acquisti.idutente=ute_acq.id
INNER JOIN utenti as ute_pag ON acquisti.idutentepagato=ute_pag.id
in questo modo le due tabelle ute_acq e ute_pag è come se fossero due tabelle distinte.
ciao!
--
oggi la mia voglia di lavorare è pari a null
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 23 dic 2008 - 22:26
Sì, adesso che Jenga ha risposto mi ha fatto capire la domanda.
Lo quoto
e credo proprio che fare la join due volte con due alias diversi sulla stessa tabella sia la soluzione corretta.
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !