roby1483
16-05-2007, 11:39
Salve a tutti,
ho la necessita' di fare una select particolare, almeno per me perche' non riesco a farla.
Ho queste due tabelle:
CREATE TABLE ALBUM(
ID_ALBUM SERIAL PRIMARY KEY,
TITOLO VARCHAR(30) NOT NULL,
ID_ARTISTA INT REFERENCES ARTISTI (ID_ARTISTA) NOT NULL,
ID_ETICHETTA INT REFERENCES ETICHETTE (ID_ETICHETTA),
COPERTINA BOOL DEFAULT FALSE NOT NULL,
NUMERO_TRACCE INT2 NOT NULL,
ID_GENERE INT REFERENCES GENERI (ID_GENERE) NOT NULL,
ID_SOTTOGENERE INT REFERENCES SOTTOGENERI (ID_SOTTOGENERE),
ANNO_PUBBLICAZIONE INT2 DEFAULT NULL,
PIETRAMILIARE BOOL DEFAULT FALSE NOT NULL,
DATA_INSERIMENTO TIMESTAMP DEFAULT LOCALTIMESTAMP NOT NULL,
ID_REDATTORE INT REFERENCES UTENTI (ID_UTENTE) NOT NULL);
CREATE TABLE VOTI_UTENTE(
ID_UTENTE INT REFERENCES UTENTI (ID_UTENTE) NOT NULL,
ID_ALBUM INT REFERENCES ALBUM (ID_ALBUM) NOT NULL,
VOTO INT2 NOT NULL,
PRIMARY KEY (ID_UTENTE, ID_ALBUM));
Il DBMS e' PostgreSQL e fino ad ora usavo questa select per tirare fuori tutte le informazioni di una album a caso:
SELECT * FROM ALBUM ORDER BY RANDOM() LIMIT 1
Adesso pero' ho bisogno di avere anche la media dei voti assegnati all'album e non sono riuscito a creare una select che funzionasse. Ho provato con le JOIN ma non sono molto pratico e non ci sono riuscito.
Spero che ci sia qualcuno disposto ad aiutarmi.
Grazie a tutti ;)
ho la necessita' di fare una select particolare, almeno per me perche' non riesco a farla.
Ho queste due tabelle:
CREATE TABLE ALBUM(
ID_ALBUM SERIAL PRIMARY KEY,
TITOLO VARCHAR(30) NOT NULL,
ID_ARTISTA INT REFERENCES ARTISTI (ID_ARTISTA) NOT NULL,
ID_ETICHETTA INT REFERENCES ETICHETTE (ID_ETICHETTA),
COPERTINA BOOL DEFAULT FALSE NOT NULL,
NUMERO_TRACCE INT2 NOT NULL,
ID_GENERE INT REFERENCES GENERI (ID_GENERE) NOT NULL,
ID_SOTTOGENERE INT REFERENCES SOTTOGENERI (ID_SOTTOGENERE),
ANNO_PUBBLICAZIONE INT2 DEFAULT NULL,
PIETRAMILIARE BOOL DEFAULT FALSE NOT NULL,
DATA_INSERIMENTO TIMESTAMP DEFAULT LOCALTIMESTAMP NOT NULL,
ID_REDATTORE INT REFERENCES UTENTI (ID_UTENTE) NOT NULL);
CREATE TABLE VOTI_UTENTE(
ID_UTENTE INT REFERENCES UTENTI (ID_UTENTE) NOT NULL,
ID_ALBUM INT REFERENCES ALBUM (ID_ALBUM) NOT NULL,
VOTO INT2 NOT NULL,
PRIMARY KEY (ID_UTENTE, ID_ALBUM));
Il DBMS e' PostgreSQL e fino ad ora usavo questa select per tirare fuori tutte le informazioni di una album a caso:
SELECT * FROM ALBUM ORDER BY RANDOM() LIMIT 1
Adesso pero' ho bisogno di avere anche la media dei voti assegnati all'album e non sono riuscito a creare una select che funzionasse. Ho provato con le JOIN ma non sono molto pratico e non ci sono riuscito.
Spero che ci sia qualcuno disposto ad aiutarmi.
Grazie a tutti ;)