|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[SQL urgentissimo] Domanda query
Ragazzi,
oggi alle 14:00 inizieràil mio esame di database...vi chiedo un ultimo parere circa un'esercizio che ho appena fatto. Ho un DB con le tabelle fatte in questo modo: ho degli ogetti, alcuni ogetti possono essere sovrapposti ad altri ed ogni oggetto ha un proprio ambiente (vabbè per capire gli oggetti sono mobili e sopramobili e gli ambienti possono essere le stanze) NB: i mobili e sopramobili sono messi indistintamente nell'entità OGETTO perchè così ha deciso la proff per farci fare una relazione ricorsiva e la tabella componibile_con deve essere separata da posizione per motivi di cardinalità... Le tabelle sono: OGETTO(codice, colore, prezzo ID_ambiente) AMBIENTE(ID_ambiente, descrizione) POSIZIONE(codice_sotto, codice_sopra) COMPONIBILE_CON(codice_A, codice_B) Ora i vincoli di integrità referenziale che collegano una tabella all'altra mi sembrano chiari... La query che devo fare è: "Elencare tutti gli oggetti che si possono sovrapporre ad altri, con il loro colore e la descrizione dell' ambiente di riferimento" Io l'ho pensata così (ditemi che va bene o che almeno qualche punto per il raggionamento me lo avrebbe dato se no mi sparo): Codice:
SELECT OGGETTO.codice, OGGETTO.ID_ambiente, AMBIENTE.descrizione FROM OGGTTO, AMBIENTE, POSIZIONE WHERE OGGETTO.codice = POSIZIONE.codice_sopra AND OGGETTO.ID_ambiente= AMBIENTE.ID_ambiente GROUP BY OGGETTO.codice; Voglio elencare TUTTI gli oggetti con i relativi ambienti e la descrizione di tale ambiente per cui seleziono il codice dell'oggetto dalla tabella OGGETTO, il codice dell'ambiente associato a tale oggetto dalla tabella OGGETTO e la descrizione di tale ambiente che devo pescare dalla tabella AMBIENTE e ho usato la select per farlo. Le tabelle su cui devo lavorare sono OGGETTO, AMBIENTE, SOVRASTANTE e le indico con il from che mi fà il mega tabbellone del prodotto cartesiano su cui effettuare i join. Da questo mega tabellone seleziono tutte le righe dove: il codice dell'oggetto nella tabella OGGETTO è uguale al codice dell'oggetto soprastante nella tabella POSIZIONE (cioè seleziono un oggetto che stà sopra ad un altro) e seleziono ulteriormente nel tabellone le righe con il giusto idambiente. Infine visto che voglio mostrarle tutte uso la group by per raggrupparle in base ai codici degli oggetti che sono stati selezionati. Ditemi che ce può stà in qualche modo una cosa del genere ![]() Grazie Andrea |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:26.