Bonjour,
Je souhaite créer une base de données de films un peu kitsh pour un projet de VOD que je dois effectuer lors d'un projet d'école.
J'ai donc 5 bases distinctes :
- serial_films : base de films avec toutes les informations associées (description, acteurs etc.)
- serial_origines : base d'intitulé d'origine des films (américain, français etc.)
- serial_films_l_origines : base qui relie les id des films aux id des origines sachant qu'un film peut avoir plusieurs origines donc plusieurs rows par films
- serial_genres : base d'intitulé des genres de films (action, aventure etc.)
- serial_films_l_genres : base qui relie les id des films aux id des genres sachant qu'un film peut avoir plusieurs genres
Mon but est de créer en une seule requête un tableau de résultat comprenant toutes les informations sur un film dont ses origines et ses genres associés. J'ai donc utilisé un GROUP CONCAT pour mettre en une row et séparés par des virgules associées les genres associés au film, jusque là tout est OK. Voici la requête :
Elle marche parfaitement mais voilà, j'aimerai maintenant pouvoir ajouter à ce tableau de résultat, les origines associées donc si on suit le même schéma, on arrive à cela :
Mais voilà lorsque j'execute cette requête, mon serveur MySQL rame dans le vide et n'affiche aucun résultat sachant que lorsque je veux récupérer que les genres, le résultat arrive en quelques centièmes de secondes.
Qu'en pensez vous ?
Merci d'avance pour votre aide.
Modifié par lellok (01 Jan 2010 - 23:20)
Je souhaite créer une base de données de films un peu kitsh pour un projet de VOD que je dois effectuer lors d'un projet d'école.
J'ai donc 5 bases distinctes :
- serial_films : base de films avec toutes les informations associées (description, acteurs etc.)
- serial_origines : base d'intitulé d'origine des films (américain, français etc.)
- serial_films_l_origines : base qui relie les id des films aux id des origines sachant qu'un film peut avoir plusieurs origines donc plusieurs rows par films
- serial_genres : base d'intitulé des genres de films (action, aventure etc.)
- serial_films_l_genres : base qui relie les id des films aux id des genres sachant qu'un film peut avoir plusieurs genres
Mon but est de créer en une seule requête un tableau de résultat comprenant toutes les informations sur un film dont ses origines et ses genres associés. J'ai donc utilisé un GROUP CONCAT pour mettre en une row et séparés par des virgules associées les genres associés au film, jusque là tout est OK. Voici la requête :
SELECT id, titre, jaquette, description, realisateur, acteurs, duree, annee, GROUP_CONCAT( intitule_genre SEPARATOR ', ' ) AS genre
FROM serial_films, serial_films_l_genres, serial_genres
WHERE serial_films.id = serial_films_l_genres.id_film
AND serial_films_l_genres.id_genre = serial_genres.id_genre_p
GROUP BY id
LIMIT 0,120
Elle marche parfaitement mais voilà, j'aimerai maintenant pouvoir ajouter à ce tableau de résultat, les origines associées donc si on suit le même schéma, on arrive à cela :
SELECT id, titre, jaquette, description, realisateur, acteurs, duree, annee, GROUP_CONCAT( intitule_genre SEPARATOR ', ' ) AS genre, GROUP_CONCAT( intitule_origine SEPARATOR ', ' ) AS origine
FROM serial_films, serial_films_l_genres, serial_genres, serial_origines,serial_films_l_origines
WHERE serial_films.id = serial_films_l_genres.id_film
AND serial_films.id = serial_films_l_origines.id_film
AND serial_films_l_genres.id_genre = serial_genres.id_genre_p
AND serial_films_l_origines.id_origine = serial_origines.id_origine_p
GROUP BY id
LIMIT 0 , 30
Mais voilà lorsque j'execute cette requête, mon serveur MySQL rame dans le vide et n'affiche aucun résultat sachant que lorsque je veux récupérer que les genres, le résultat arrive en quelques centièmes de secondes.
Qu'en pensez vous ?
Merci d'avance pour votre aide.
Modifié par lellok (01 Jan 2010 - 23:20)