Query da database con tabelle multiple

di il
1 risposte

Query da database 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, nomeautore

con la query qui sotto cercando un titolo, ne ricavo il titolo, il none e cognome dell'autore1 e l'editore:
$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_Autore1 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

1 Risposte

  • Re: Query da database con tabelle multiple

    Prova a creare degli alias per la tabella Autori:
    
    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
Devi accedere o registrarti per scrivere nel forum
1 risposte