- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Query da database Mysql con tabelle multiple
-
Query da database Mysql con tabelle multiple
Ciao a tutti,
ho un problemino con una query Mysql:ho un database composto da più tabelle con i linìbri di una biblioteca. ecco la struttura:
tabella libri - IDlibro, Titolo, IDautore1, IDautore2, IDautore3, IDeditore
tabella autori - IDautore, nome, cognome
tabella editore - IDeditore, nomeautorecon la query qui sotto cercando un titolo, ne ricavo il titolo, il none e cognome dell'autore1 e l'editore:
[PHP]$query = "SELECT Libri.Titolo, CONCAT(Autori.Nome,' ', Autori.Cognome) AS nomeautore, Editori.Nome FROM Libri, Autori, Editori WHERE Titolo LIKE '%$cercatitolo%' AND Editori.Id_Editore = Libri.Id_Editore AND Autori.Id_Autore = Libri.Id_Autore ORDER BY Titolo";[/PHP]il mio problema è:
come faccio a ottenere anche l'autore 2 e l'autore 3 (se esistenti)?ho provato di tiutto ma non ci sono riuscito...
Qualcuno può aiutarmi?grazie in anticipo.
paolo
-
Appare che sia una relazione n-n. Se puoi cambiare la struttura consiglerei di rimuovere gli autori dai libri e avere un'altra tabella libriautori che contiene queste relazioni.
-
@neroux said:
Appare che sia una relazione n-n. Se puoi cambiare la struttura consiglerei di rimuovere gli autori dai libri e avere un'altra tabella libriautori che contiene queste relazioni.
in realtà potrei, ma possibile che non si riesca con una query?
... e poi una volta creata la nuova tabella come potri procedere?
-
Scusa se intervengo : la tabella "libri", giusto suggerimento di pepe50, non è normalizzata.
Quindi o normalizzi le tabelle , oppure in alternativa ricorri alla tabelle derivate annidando più select ( che è abbastanza complicato ).In pratica dovresti crearti una vista e poi updatare la stessa con nome e cognome dell'autore per ognuno di essi.