View Full Version : [query]come faccio?
The Incredible
23-07-2007, 11:14
ho 3 tabelle:
utente
-id
-username
....
vendita(oggetto)
idutente
.....
offre
idutente
...
vorrei selezionare per ogni oggetto/vendita
idoggetto con id e username acquirente e id user venditore
spero di essermi spiegato..ci sto ragionando ma non sono arrivato alla soluzione.
select oggetto.id, utente.id,utente.username from oggetto join utente on oggetto.id_utente=utente.id
con questa mi trovo una parte cioè..idoggetto e id e user del venditore..ora vorrei affiancarci i dati presi e collegati da offre..
The Incredible
23-07-2007, 11:15
in pratica c'è la tabella utente..
un utente mette in vendita un oggetto..quindi tabella oggetto/vendita..
un altro venditore fa un offerta per quell'oggetto..quindi tabella offre..
per ogni oggetto voglio sapere chi ha fatto un offerta e chi sta vendendo..
in pratica c'è la tabella utente..
un utente mette in vendita un oggetto..quindi tabella oggetto/vendita..
un altro venditore fa un offerta per quell'oggetto..quindi tabella offre..
per ogni oggetto voglio sapere chi ha fatto un offerta e chi sta vendendo..
secondo me ti conviene inserire una nuova tabella
es: Traslazioni:
-id_traslazione
-id_Utente
-id_oggetto
secondo me ti conviene inserire una nuova tabella
es: Traslazioni:
-id_traslazione
Mmmmhhh...a che serve ?
con questa mi trovo una parte cioè..idoggetto e id e user del venditore..ora vorrei affiancarci i dati presi e collegati da offre..
Niente ti vieta di fare un'altra query...
The Incredible
23-07-2007, 14:21
ho risolto:
SELECT o. * , AS max, u.id AS id_offerente, u.username AS n_offerente, j.id_utente AS id_offerente, t.username
FROM utente u, oggetto o, offre j, utente t
WHERE u.id = o.id_utente
AND j.id_oggetto = o.id
AND t.id = j.id_utente
GROUP BY o.id
The Incredible
23-07-2007, 14:21
Niente ti vieta di fare un'altra query...
lo sò..ma volevo farne una sola per la pulizia ed efficienza codice..risolto.
lo sò..ma volevo farne una sola per la pulizia ed efficienza codice..risolto.
Non mi sembra assolutamente più pulito...anzi ;)
The Incredible
23-07-2007, 14:31
Non mi sembra assolutamente più pulito...anzi ;)
quindi dici che è meglio farne due invece di come ne ho fatta una? :)
quindi dici che è meglio farne due invece di come ne ho fatta una? :)
Credo proprio di sì...
Tra l'altro nel risultato avresti anche informazioni ridondanti.
The Incredible
23-07-2007, 14:37
diciamo che le info ridondanti mi servono..infatti con questa query popola la pagina di visualizzazione oggetto e in + mi serve sapere il venditore username e l'acquirente e username
The Incredible
23-07-2007, 14:44
mi rimane un problema nella mia query..
quando non ci sono acquirenti quindi offerte non mi ritorna niente..
SELECT o. * , u.id AS id_venditore, u.username AS n_venditore, j.id_utente AS id_offerente, t.username as n_offerente
FROM utente u, oggetto o, offre j, utente t
WHERE u.id = o.id_utente
AND j.id_oggetto = o.id
AND t.id = j.id_utente
GROUP BY o.id
The Incredible
23-07-2007, 15:10
ecco le 3 query divise:
$sql=" SELECT oggetto. * , max( offre.max_offerta ) AS max,
FROM oggetto LEFT JOIN offre ON offre.id_oggetto = oggetto.id
where oggetto.id= '".$id_oggetto."'";
$sqlvenditore="select utente.username,utente.id
from utente join oggetto on oggetto.id_utente=utente.id
where oggetto.id= '".$id_oggetto."'";
$sqlacquirente="select utente.username,utente.id
from utente join offre on offre.id_utente=utente.id
where offre.id_oggetto= '".$id_oggetto."'";
ora mi piacerebbe riuscire tanto per provare a farne una unica con la stessa funzione
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.