Hola gaelv80:
Lo que quieres, si se puede obtener, puedes utilizar por ejemplo la función GROUP_CONCAT para poner todos los discos en los que aparece una canción en una columna con valores separados por comas, es decir, algo así:
Código MySQL:
Ver original+-----------+---------+
| cancion | disco |
+-----------+---------+
| cancion 1 | disco 1 |
| cancion 1 | disco 2 |
| cancion 2 | disco 1 |
| cancion 2 | disco 2 |
| cancion 2 | disco 3 |
| cancion 3 | disco 2 |
+-----------+---------+
+-----------+-------------------------+
| cancion | discos |
+-----------+-------------------------+
| cancion 1 | disco 1,disco 2 |
| cancion 2 | disco 1,disco 2,disco 3 |
| cancion 3 | disco 2 |
+-----------+-------------------------+
El resto es sólo armar correctamente los JOIN's que necesites para poder filtrar por un autor en específico.
haz la prueba y nos comentas.
Saludos
Leo.