Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consulta a 3 tablas

Estas en el tema de consulta a 3 tablas en el foro de Mysql en Foros del Web. Bueno algunos que no me conozcan no sabrán que me estoy peleando a muerte con una relacion n:m y como solo me dedico los fines ...
  #1 (permalink)  
Antiguo 03/04/2011, 22:33
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
consulta a 3 tablas

Bueno algunos que no me conozcan no sabrán que me estoy peleando a muerte con una relacion n:m y como solo me dedico los fines a este proyecto parece que no avanzo, ya entendi como crear las 3 tablas

libros
id|autor|titulo|nom_link

generos
id|genero

rel_genlib
id|id_genero|id_libro

cuando hago la consulta para obtener los datos de esto me da muy bien los resultados

esta es mi consulta:

Código MySQL:
Ver original
  1. SELECT * FROM libros JOIN rel_genlib JOIN generos ON libros.id=rel_genlib.libro AND generos.id=rel_genlib.genero AND nom_link = 'esparta'

pero me devuelve una fila por cada género, es decir si el libro tiene 5 géneros distintos me devuelve 5 filas

existe alguna forma de que me seleccione una sola fila y en esa fila tenga todos esos generos por que en php me va a traer problemas.

O como diablos hago para que al presentar la info de cada libro muestre todos los datos y además los varios generos del libro?

Última edición por memoadian; 03/04/2011 a las 23:28
  #2 (permalink)  
Antiguo 04/04/2011, 00:53
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: consulta a 3 tablas

creo que ya comprendi la idea, al parecer tengo que hacer tantas consultas extras como relaciones n:m tenga en este caso es una consulta extra para obtener los géneros. algo así

Código MySQL:
Ver original
  1. SELECT generos.genero FROM libros JOIN rel_genlib JOIN generos WHERE libros.id=rel_genlib.libro AND generos.id=rel_genlib.genero AND nom_link = 'esparta'

si alguien tiene algun consejo extra será bien recibido.

Última edición por memoadian; 04/04/2011 a las 10:00

Etiquetas: 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 17:54.