Help me!

martedì 17 luglio 2012 - 14.06

merge90 Profilo | Newbie

ciao ragazzi!
ho bisogno una mano...
cerco di essere il piu preciso possibile:
ho 3 tabelle:
ordine (user,codice_or,data, prezzo)
composiz_ordin(codice_or,codice,quantita)
articolo(codice, nome,prezzo)

quello che io ho bisogno è per ogni ordine di un determinato utente (user) restituire tutti gli articoli di quell'ordine... io l'ho fatto facendo prima la query per trovare tutti gli ordini dell'utente... e poi per ogni ordine un altra query per gli articoli...Quello che ho fatto non è molto efficente e volevo chiedere se si puo fare una query unica per alleggerire l'uso del DB. Grazie in anticipo!

boccia75 Profilo | Junior Member

Ti rispondo velocemente:

select ordine.user,ordine.codice_or,articolo.codice
from
ordine,
composiz_ordin,
articolo
where ordine.codice_or=composiz_ordin.codice and
composiz_ordin.codice=articolo.codice
order by ordine.user,ordine.codice_or,articolo.codice

Dovrebbe andare.
Ciao.

merge90 Profilo | Newbie

ciao, grazie per la risposta ma nel modo che mi hai indicato non selezioni tutti gli articoli di ogni ordine! :(

boccia75 Profilo | Junior Member

Hai proprio ragione, scusami...
Adesso sto provando con qualche riga nelle tabelle.
Ciao

merge90 Profilo | Newbie

quello che voglio fare io in poche parole è ottenere per ogni ordine di un user tuttti gli articoli presenti in esso...ti allego un pezzo di ER.
vorrei ottenere: codice ordine --------> articoli nel seguente codice.

boccia75 Profilo | Junior Member

Ho confuso una tabella con un'altra....
Ecco la query:

select ordine.utente,ordine.codice_or,composiz_ordin.codice
from
ordine,
composiz_ordin,
articolo
where ordine.codice_or=composiz_ordin.codice_or and
composiz_ordin.codice=articolo.codice
order by ordine.utente,ordine.codice_or,articolo.codice



che riporta questo risultato

giovanni 3 1
giovanni 3 10
giovanni 3 11
giovanni 3 12
giovanni 3 4
luca 1 1
luca 1 2
luca 1 3
luca 1 5
luca 1 6
marco 2 2
marco 2 4
marco 2 8
marco 2 9


con questo set di dati


insert into ordine(utente,codice_or,data,prezzo) values ('luca','1','111111',0)
insert into ordine(utente,codice_or,data,prezzo) values ('marco','2','111111',0)
insert into ordine(utente,codice_or,data,prezzo) values ('giovanni','3','111111',0)

insert into composiz_ordin(codice_or,codice,quantita) values ('1','1', 1)
insert into composiz_ordin(codice_or,codice,quantita) values ('1','2', 1)
insert into composiz_ordin(codice_or,codice,quantita) values ('1','3', 1)
insert into composiz_ordin(codice_or,codice,quantita) values ('1','5', 1)
insert into composiz_ordin(codice_or,codice,quantita) values ('1','6', 1)
insert into composiz_ordin(codice_or,codice,quantita) values ('2','2', 3)
insert into composiz_ordin(codice_or,codice,quantita) values ('2','4', 2)
insert into composiz_ordin(codice_or,codice,quantita) values ('2','8', 2)
insert into composiz_ordin(codice_or,codice,quantita) values ('2','9', 2)
insert into composiz_ordin(codice_or,codice,quantita) values ('3','1', 1)
insert into composiz_ordin(codice_or,codice,quantita) values ('3','4', 2)
insert into composiz_ordin(codice_or,codice,quantita) values ('3','12', 3)
insert into composiz_ordin(codice_or,codice,quantita) values ('3','10', 1)
insert into composiz_ordin(codice_or,codice,quantita) values ('3','11', 1)






insert into articolo(codice, nome,prezzo) values ('1', 'pippo', 1)
insert into articolo(codice, nome,prezzo) values ('2', 'ee', 2)
insert into articolo(codice, nome,prezzo) values ('3', 'rrr', 4)
insert into articolo(codice, nome,prezzo) values ('4', 'eee', 3)
insert into articolo(codice, nome,prezzo) values ('5', 's', 1)
insert into articolo(codice, nome,prezzo) values ('6', 'd', 1)
insert into articolo(codice, nome,prezzo) values ('7', 'f', 1)
insert into articolo(codice, nome,prezzo) values ('8', 'gh', 1)
insert into articolo(codice, nome,prezzo) values ('9', 'j', 1)
insert into articolo(codice, nome,prezzo) values ('10', 'f', 1)
insert into articolo(codice, nome,prezzo) values ('11', 'cx', 1)
insert into articolo(codice, nome,prezzo) values ('12', 's', 1)

Ciao!

merge90 Profilo | Newbie

Ti ringrazio!;)
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5