SQL - Agrupar por campos multivalor

   
Vista:

Agrupar por campos multivalor

Publicado por Angel Romero (1 intervención) el 04/09/2011 18:52:07
Hola a todos

Quiero hacer una consulta pero no se como realizarla. Es sobre una tabla de películas, y cada campo registro tiene un titulo, un año, un país,... pero muchos géneros. Por ello, he usado un campo géneros y lo he hecho multivalor (Estos valores separados por coma).


Tengo una pelicula: id_pelicula=1 Titulo="Matrix" Generos:"Ciencia Ficción, Acción, Drama"

Lo que quiero es un recordset así:

id_pelicula=1 Titulo="Matrix" Generos:"Ciencia Ficción"
id_pelicula=1 Titulo="Matrix" Generos:"Acción"
id_pelicula=1 Titulo="Matrix" Generos:"Drama"

Y esto no con 1 pelicula, sino con todas las de una tabla.

Pinta complicado y quizá tendré que usar 2 tablas más y tirar de relaciones e INNER JOIN. ¿Como lo veis?

A ver si hay suerte, si no haré esto último

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Agrupar por campos multivalor

Publicado por leonardo_josue (877 intervenciones) el 06/09/2011 17:15:28
Hola Angel Romero:

Tienes un grave problema con el modelado de tus tablas, NUNCA DEBES UTILIZAR CAMPOS MULTIVALOR EN UNA TABLA, cuando tienes una relación m a n o muchos a muchos debes utilizar un modelo con tres tablas, dos catálogos y una relación. Este es tu caso, ya que una película puede tener muchos géneros, y un género puede aparecer en muchas películas. El modelo ideal sería entonces tener un catálogo de Películas, un catálogo de Géneros y una tabla de relaciones.

No mencionas qué BD estás utilizando, ya algunos que implementan funciones para poder separar campos separados por algún caracter (como la función split de los lenguanjes de programación), sería cuestión de que revises si tu motor de BD soporta este tipo de funciones o tratar de implementarla por tu cuenta.

Si aun estás en posibilidades de cambiar tu modelo de BD hazlo, te aseguro que te ahorrarás muchos dolores de cabeza en el futuro. Te recomiendo que leas algo acerca de normalización de BD, para no tener problemas al momento de modelar tu BD

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar