Devo eseguire una query un po' complessa e non so come fare.
Brevemente la struttura del database sulla quale intervengo sono tre tabelle:
Tabella "cd":
mi dice diversi dati supplementari del cd ed è collegato alle tabelle tramite id
Tabella "cd_musicisti_autori":
è una tabella di collegamento tra la tabella "cd" e la tabella "musicisti", i campi sono
"id_cd" ed "id_musicisti"
Tabella "musicisti":
contiene i campi "id", "nome", "cognome" ed è collegata alla tabella "cd" tramite la seconda tabella, in questo modo ogni cd può avere più di un autore.
La query che voglio deve poter selezionare i cd che abbiano per autore un certo musicista, il cui nome è contenuto in una variabile che chiamo $_NOME.
Io ho provato a fare una query così:
Codice PHP:
$query= "SELECT * FROM cd
WHERE (
SELECT m.nome, m.cognome
FROM musicisti m
JOIN cd_musicisti_autori cd_m_a
ON cd_m_a.id_musicisti = m.id
WHERE cd_m_a.id_cd = id";
)
LIKE '%$_NOME%' ";
Il criterio è scorrere la lista dei cd e per ogni cd individuare tramite la query annidata il nome ed il cognome del o degli autori per confrontarli poi nella prima query con il nome ricercato.
La query annidata mi da errore:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT m.nome, m.cognome FROM musicisti m JOIN cd_musicisti_au' at line 1