Cita:
Iniciado por Zenok No he entendido demasiado bien lo que pretendes hacer ¿Quieres mostrar un listado de canciones con toda su información?
¿Si es así, porque no utilizas un solo while con una consulta JOIN que te saque directamente toda la info (id cancion, Titulo cancion, id autor, nombre autor, etc)?
Código MySQL:
Ver originalSELECT a.ID_AUTOR
, a.NOMBRE
, m.ID_CANCION
, m.TITULO
FROM ((cancion_autor
JOIN cancion
ON ma.ID_CANCION
= cancion.m.ID_CANCION
) JOIN autor
ON ma.ID_AUTOR
= autor.a.ID_AUTOR
);
@Zenok:
Ten cuidado con el uso de paréntesis en MySQL. No solo son innecesarios para el JOIN, sino que pueden hacer que se generen consultas ineficientes.
El parser en ciertos casos los usa para establecer el orden de los JOIN, lo qu epuede disparar consultas ineficientes de acuerdo a los datos que existan en el momento.
Si pones los JOIN sin paréntesis, estás permitiendo que el parser busque cual es la mejor posibilidad.
No te olvides que MySQL no es SQL Server. No tiene las mismas reglas de inferencia.