salve a tutti
qualcuno è così gentile da spiegarmi come devo fare per gestire le ricerche di record su più tabelle?
Vi spiego come attualmente gestico la ricerca.

Ho una tabella AUTORI
ID | TITOLO

una tabella OPERE
ID | TITOLO | ID_AUTORE | ALTRI AUTORI | ANNO

una tabella CATEGORIE
ID | TITOLO

una tabella OPERE_CATEGORIE
ID_OPERE | ID_CATEGORIE

Devo realizzare una pagina ricerca con una serie di select
SELECT AUTORE
SELECT CATEGORIA
SELECT ANNO
TASTO CERCA

In ogni select inserisco i valori presi dalle rispettive tabelle in DISTINCT.
I select non sono obbligatori, quindi il risultato e la query cambia dal momento che scelgo di filtrare il risultato di un campo.

Ho dei limiti a gestire le query. Vorrei capire da voi come devo gestire queste situazioni.

Codice PHP:
if($_GET['categoria']) $query="INNER JOIN $table[opere_categorie] ON $table[opere].id=$table[opere_categorie].id_opera WHERE $table[opere_categorie].id_categoria='$_GET[categoria]'";
if(
$_GET['artista']) $query.=" WHERE artista = '$_GET[artista]'";
if(
$_GET['anno']) $query.=" WHERE anno = '$_GET[anno]'";
            
$s="SELECT * FROM $table[opere] $query ORDER BY $table[opere].titolo"