Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/04/2012, 03:46
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta group_concat

Código MySQL:
Ver original
  1.     film.film_id,
  2.     film.title,
  3.     GROUP_CONCAT(distinct category.name SEPARATOR ',') as categoria,
  4.     GROUP_CONCAT(distinct actor.fullname SEPARATOR ',') as actor
  5.     (film
  6. left join (film_category inner join category on category.category_id = film_category.category_id)
  7.     on film_category.film_id = film.film_id)
  8. left join (film_actor INNER join actor on actor.actor_id = film_actor.actor_id)
  9.     on film_actor.film_id = film.film_id
  10. group by film.film_id

No se si ganaras algo....

La opción mejor quizás es ir a sql estándar olvidarse de group concat... y usar programación externa para mostrar las cosas como quieres.

Tienes films sin ninguna categoría ni actor... eso es lo que te fuerza a usar el Left Join... podrías solucionarlo....

Otro tema GROUP_CONCAT(distinct necesitas ese Distinct... una clave principal compuesta en las tablas film_category, film_actor te asegura que no habrá repeticiones y por tanto no necesitas ese distinct...

(la PK debe ser film_id+category_id y film_id+actor_id respectivamente)


Cualquier cosa antes de incurrir en esas malas practicas!!!!
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 05/04/2012 a las 04:06