operazione complessa in unica query

Ciao a tutti ragazzi!

Questa è la mia situazione. Ho una database in MySQL con tabelle:

- Libri (ID,Titolo,Prezzo)

- Autori (ID,Nominativo)

più una tabella Libri_Autori (ID,ID_Libro,ID_Autore) per modellare il fatto che un libro può avere uno o più autori.

Mi piacerebbe fare una query che mi possa restituire elenco di tutti i prodotti registrati nel seguente formato:

ID_LIBRO - TITOLO - PREZZO - ELENCO AUTORI.

Ad esempio, ogni record nel formato:  289   TitoloLibro   14.00   Autore1,Autore2,Autore3

Mi chiedevo: riesco ad ottenere il tutto in un'unica query? In particolare come faccio ad ottenere elenco propri autori in corrispondenza del libro?

Dovrei ripetere la cosa anche per un db in MySQL Server: cambia qualcosa?

Qualcuno può aiutarmi?

GRAZIE

Ciao a tutti

inviato 7 anni fa
js80
js80
1
X 0 X

Se i dbms rispettano la sintassi sql ti basta creare una query per tutti.

La query così:

SELECT Libri.ID, Libri.Titolo, Libri.Prezzo, Autori.Nominativo FROM Libri_Autori INNER JOIN Libri INNER JOIN Autori ON Libri_Autori.ID_Libro = Libri_ID AND Libri_Autori.ID_Autore = Autori.ID ORDER BY Libri.Titolo

Potrebbe fare al caso tuo?

Però non aggrega i valori dei vari autori, cioè avrai più righe se esistono più autori per uno stesso libro.

Per fare la vista che chiedi temo dovresti fare più query.

risposto 7 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda