Pagina 1 di 1

ricerca da tabelle multiple

Inviato: 14/11/2012, 11:47
da pepe50
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, nomeautore

con la query qui sotto cercando un titolo, ne ricavo il titolo, il none e cognome dell'autore1 e l'editore:

Codice: Seleziona tutto

$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";
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

Re: ricerca da tabelle multiple

Inviato: 27/11/2012, 10:35
da holidaysoft.it
Prova a creare degli alias per la tabella Autori:

Codice: Seleziona tutto

SELECT Libri.Titolo, 
CONCAT(a.Nome,' ', a.Cognome) AS nomeautore1, 
CONCAT(b.Nome,' ', b.Cognome) AS nomeautore2,
CONCAT(c.Nome,' ', c.Cognome) AS nomeautore3,
Editori.Nome 
FROM Libri, Autori a, Autori b, Autori c, Editori 
WHERE Titolo LIKE '%$cercatitolo%' 
AND Editori.Id_Editore = Libri.Id_Editore 
AND a.Id_Autore = Libri.ID_Autore1 
AND b.Id_Autore = Libri.ID_Autore2
AND c.Id_Autore = Libri.ID_Autore3
ORDER BY Titolo



Ciao
Mik