Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2014, 11:15
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: consulta en 2 campos de ambas tablas

Es un tema más de sintaxis de SQL para MySQL, que de PHP.
Por lo pronto, LEFT JOIN te devolverá todas las canciones, estén o no relacionadas con el artista, por lo que puede haber problemas con el resultado.
Por otro lado, sólo puede haber un único ON en cada JOIN, no dos.
Código MySQL:
Ver original
  1.     c.*,le.letra
  2. FROM canciones AS c
  3.     LEFT JOIN letras AS le ON c.artista=le.artista AND c.cancion=le.cancion
  4.     c.cancion = '".str_replace("-"," ",$_GET[can])."'
  5.     AND c.artista = '".str_replace("-"," ",$_GET[artis])."'
  6. ORDER BY cancion
Además de eso, el modelo de datos parece estar mal, porque una misma canción puede tener N artistas relacionados, y cada artista puede estar relacionado con N canciones. En ese contexto es una relación N:M que requiere al menos TRES TABLAS para manejarse, y tu estás poniendo DOS.
Creo que estás planteando mal la cosa desde la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)