Ho 3 tabelle :
Tabella 1 (Contiene il campo cantanti)
id_cantante=1 nome=Edoardo Bennato
id_cantante=2 nome=Vansco Rossi
id_cantante=3 nome=Zucchero
Tabella 2 (Contiene il campo dischi)
id_cantante=1 id_disco=1 nome_album=Disco Bennato
id_cantante=2 id_disco=2 nome_album=Disco Vasco
id_cantante=3 id_disco=3 nome_album=Disco Zucchero
Tabella 3 (Contiene il campo brani)
id_disco=1 titolo=Brano1 bennato
id_disco=1 titolo=Brano2 bennato
id_disco=1 titolo=Brano3 bennato
id_disco=2 titolo=Brano1 vasco
id_disco=3 titolo=Brano1 zucchero
le tabelle 1 e 2 sono legate da id_cantante
le tabelle 2 e 3 sono legate da id_disco
dovrei fare una query che mi restituisca il nome del disco, i brani contenuti ed il cantante.
Usando questa query :
$t=mysql_query("SELECT tabella1.nome, tabella2.nome_album, tabella3.titolo FROM tabella1 INNER JOIN tabella2 ON tabella1.id_cantante=tabella2.id_cantante INNER JOIN tabella3 ON tabella3.id_disco=tabella2.id_disco WHERE tabella2.id_disco='1'");
while($dati=mysql_fetch_array()){
echo"$dati[nome] - $dati[nome_album] - $dati[titolo]
";
}
Facendo scrivere il risultato però mi scrive:
Bennato - Disco1 Bennato - Brano1 Bennato
Bennato - Disco1 Bennato - Brano2 Bennato
Bennato - Disco1 Bennato - Brano3 Bennato
ovviamente 3 righe perchè il disco di bennato ha 3 brani. Come faccio a farmi scrivere una sola riga per il nome dell'album ed il nome del cantante e poi più righe per quanti sono i brani ? Devo usare per forza 2 query distinte ?