salve a tutti. ho un problema che da cui non reisco a venirne fuori(ho giusto qualche lacuna..tutto)

in pratica ho una tabella1 principale dove inserisco tramite form dei valori numerici.
poi ho altre tabelle che con un id(numeri) e un nome(testo).

quando vado ad interrogare il db dovrebbe darmi in testo il risultato della tabella1 in funzione degli id delle altre tabelle..provo a postare quello che ho scritto che forse è più chiaro


Codice PHP:
SELECT FROM `libro`,`tipo`,`autore
WHERE libro.opera = (SELECT opera.id FROM `operaWHERE opera.nome LIKE '$valore' 
la prima tabella (libro) è composta da:
id,tipo,autore,titolo

la seconda tabella(tipo):
id,nome

la terza tabella (autore);
id, nome

quando vado ad inserire i dati li inserisco tramite un form e vengono inseriti nella tabella(libro)
quando vado a leggere trovo magari che l'autore è 126 e deve andare a leggere dalla tabella autore che l'autore 126 è foscolo.
questo è quanto.
in pratica una specie di ricerca per una biblioteca

il tutto funziona se non che mi crea un problema che avevo letto sul mio libro di php che non avendo più non ho la più pallida idea di come ricercarlo.
mi da come risultato l'incrocio di tutti i valori di tutte le tabelle.

se ho 2 autori e 2 tipi mi da come risultante 4 righe
titolo autore1 tipo1
titolo autore1 tipo2
titolo autore2 tipo1
titolo autore2 tipo2

spero di essere stao chiaro. grazie per l'aiuto