Foros del Web » Programando para Internet » PHP »

consulta en 2 campos de ambas tablas

Estas en el tema de consulta en 2 campos de ambas tablas en el foro de PHP en Foros del Web. hola buen dia tengo 2 tablas //caciones// id artista cancion url // //letras// id artista cancion letras // ¿quiero relizar una consulta con LEFT JOIN ...
  #1 (permalink)  
Antiguo 07/05/2014, 11:08
 
Fecha de Ingreso: agosto-2010
Ubicación: peru
Mensajes: 115
Antigüedad: 13 años, 8 meses
Puntos: 0
consulta en 2 campos de ambas tablas

hola buen dia tengo 2 tablas
//caciones//
id
artista
cancion
url
//

//letras//
id
artista
cancion
letras
//

¿quiero relizar una consulta con LEFT JOIN pero no sale ayuda en que estare fallando?
quiero relaizar la consulta ambas campos como artista y cancion de abbas tablas y recoger la letra

Código PHP:
$mp3sa="SELECT c.*,le.letra FROM canciones AS c LEFT JOIN letras AS le ON c.artista=le.artista ON c.cancion=le.cancion WHERE c.cancion = '".str_replace("-"," ",$_GET[can])."' AND c.artista = '".str_replace("-"," ",$_GET[artis])."' ORDER BY cancion LIMIT 1"
  #2 (permalink)  
Antiguo 07/05/2014, 11:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 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)
  #3 (permalink)  
Antiguo 07/05/2014, 11:24
 
Fecha de Ingreso: agosto-2010
Ubicación: peru
Mensajes: 115
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: consulta en 2 campos de ambas tablas

muschas gracias por la ayuda

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:02.