Foros del Web » Programando para Internet » PHP »

3 tablas INNER JOIN

Estas en el tema de 3 tablas INNER JOIN en el foro de PHP en Foros del Web. Hola Tengo tres tablas para gestionar una base de datos con las letras de todas las canciones de todos los discos de un grupo musical. ...
  #1 (permalink)  
Antiguo 25/05/2011, 04:11
 
Fecha de Ingreso: septiembre-2006
Mensajes: 233
Antigüedad: 17 años, 7 meses
Puntos: 0
3 tablas INNER JOIN

Hola

Tengo tres tablas para gestionar una base de datos con las letras de todas las canciones de todos los discos de un grupo musical.

canciones(id,titulo,letra)
discografia(id,titulo,ano,discografica)
disco_cancion(id,id_disco_id_cancion)

Quiero listar todos los discos con sus titulos de canciones que a su vez sena enlaces para leer las letras de cada canción.

Para listar los discos hago el siguiente SELECT
$consulta = "SELECT discografia.titulo,discografia.discografica,discog rafia.ano, canciones.titulo as canc_tit FROM discografia INNER JOIN disco_cancion ON discografia.id=disco_cancion.id_disco INNER JOIN canciones ON canciones.id=disco_cancion.id_cancion";

El problema es que no sé qué SELECT hacer para que una vez que pinchamos en una canción vayamos a otra página y se nos liste solamente el titulo del disco, el titulo de las canciones de ese disco y la letra de la canción a la que habiamos pinchado.

Gracias.
  #2 (permalink)  
Antiguo 25/05/2011, 05:30
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: 3 tablas INNER JOIN

Hola trhipahx.

El problema que tienes con eso que quieres hacer es que según has diseñado la base de datos, has considerado que una canción puede estar repetida en varios discos, con lo que no se podría saber en principio a que disco pertenece la canción cuando pinchas en ella.
Mediante un link en la canción no se me ocurre como hacerlo. Tienes que enviar también de alguna forma el id del disco al pinchar en la canción.

Etiquetas: join, tablas
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 03:40.